Ktoś może mi pokazać, jak konwertować POJO lub instancję klasy do JSON w strukturze Play (szczególnie Play v2.3.x) ze Scala?Jak przekonwertować POJO do JSON w Play framework 2.3.x (Scala)?
Na przykład mam kod jak poniżej:
case class Foo(name: String, address: String)
def index = Action {
request => {
val foo = Foo("John Derp", "Jem Street 21") // I want to convert this object to JSON
Ok(Json.toJson(foo)) // I got error at here
}
}
o błędzie:
nie można zapisać wystąpienie com.fasterxml.jackson.data bind.JsonNode do odpowiedzi HTTP. Spróbuj zdefiniować zapisywalny [com.fasterxml.jackson.databind.JsonNode]
UPDATE: dowiedziałem się powyższy błąd jest spowodowany niewłaściwym importu klasy Json
, powinno być: import play.api.libs.json.Json
. Jednak nadal mam błąd na ukrytym problemie poniżej.
Czytałem this tutorial, ale kiedy próbowałem niejawny kod Writes[Foo]
:
implicit val fooWrites: Writes[Foo] = (
(JsPath \ "name").write[String] and
(JsPath \ "address").write[String]
)(unlift(Foo.unapply))
mam Can't resolve symbol and
i Can't resolve symbol unlift
błędzie w IntelliJ. Również kod samouczka wygląda na złożony tylko dla konwersji obiektu do JSON. Zastanawiam się, czy istnieje prostszy sposób na zrobienie tego?
Hi, wielkie dzięki. Czy wiesz, gdzie mogę znaleźć prosty przewodnik lub dokumentację na temat korzystania z Json w wersji 2.3? Czy możesz wyjaśnić błąd "Nie można rozwiązać symbolu i" (i "unlift" również) w oryginalnym niejawnym piśmie Próbowałem? (zobacz zaktualizowane pytanie, umieściłem tam kod) – null
Aby rozwiązać błąd symbolu, należy zaimportować 'play.api.libs.functional.syntax._'. Dostarczone przeze mnie linki do dokumentacji powinny odpowiedzieć na twoje pytanie dotyczące 'unlift', a także zawierać wystarczającą ilość ogólnych informacji o Play JSON. – edi
Witam, jeszcze raz bardzo dziękuję za pomoc. Zastanawiam się, dlaczego Intellij nie może wykryć importu. – null