Chiunque può mostrarmi come convertire POJO o istanza di classe in JSON in Play framework (in particolare Play v2.3.x) con Scala?Come convertire POJO in JSON in Play framework 2.3.x (Scala)?
Per esempio io ho il codice come questo:
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
}
}
Il messaggio di errore:
Impossibile scrivere un'istanza di bind.JsonNode com.fasterxml.jackson.data di risposta HTTP. Prova a definire un Writeable [com.fasterxml.jackson.databind.JsonNode]
UPDATE: ho scoperto l'errore precedente è causato da importazione sbagliata della classe Json
, dovrebbe essere: import play.api.libs.json.Json
. Tuttavia ho ancora ricevuto errore sul problema implicito di seguito.
Ho letto this tutorial, ma quando ho provato il codice implicito Writes[Foo]
:
implicit val fooWrites: Writes[Foo] = (
(JsPath \ "name").write[String] and
(JsPath \ "address").write[String]
)(unlift(Foo.unapply))
ho ottenuto Can't resolve symbol and
e Can't resolve symbol unlift
errore di IntelliJ. Anche il codice del tutorial sembra complesso solo per la conversione di un oggetto in JSON. Mi chiedo se c'è un modo più semplice per fare questo?
Ciao, molte grazie. Sai dove posso trovare una guida o una documentazione semplice sull'uso di Json in Play 2.3? Inoltre, puoi spiegare l'errore 'Impossibile risolvere i simboli e' (e' unlift' pure) nelle scritture implicite originali che ho provato? (vedere la domanda aggiornata, ho messo il codice lì) – null
Per risolvere l'errore di simbolo è necessario importare 'play.api.libs.functional.syntax._'. I link alla documentazione che ho fornito dovrebbero rispondere alla tua domanda su "unlift" e contenere abbastanza informazioni generali su Play JSON. – edi
Ciao, ancora una volta, grazie mille per l'aiuto. Mi chiedo perché Intellij non possa rilevare l'importazione. – null