Bất cứ ai cũng có thể chỉ cho tôi cách chuyển đổi POJO hoặc cá thể lớp thành JSON trong khung Play (đặc biệt là Play v2.3.x) bằng Scala?Làm thế nào để chuyển đổi POJO sang JSON trong khung Chơi 2.3.x (Scala)?
Ví dụ tôi có mã như thế này:
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
}
}
Các thông báo lỗi:
Không thể ghi một thể hiện của bind.JsonNode com.fasterxml.jackson.data để đáp ứng HTTP. Cố gắng xác định một writeable [com.fasterxml.jackson.databind.JsonNode]
UPDATE: tôi phát hiện ra lỗi trên là do nhập khẩu sai của lớp Json
, nó phải là: import play.api.libs.json.Json
. Tuy nhiên tôi vẫn gặp lỗi về vấn đề tiềm ẩn bên dưới.
Tôi đã đọc this tutorial, nhưng khi tôi thử ngầm Writes[Foo]
mã:
implicit val fooWrites: Writes[Foo] = (
(JsPath \ "name").write[String] and
(JsPath \ "address").write[String]
)(unlift(Foo.unapply))
tôi đã Can't resolve symbol and
và Can't resolve symbol unlift
lỗi trong Intellij. Ngoài ra mã của hướng dẫn có vẻ phức tạp chỉ để chuyển đổi một đối tượng thành JSON. Tôi tự hỏi nếu có cách đơn giản hơn để làm điều này?
Hi, cảm ơn rất nhiều. Bạn có biết tôi có thể tìm thấy tài liệu hướng dẫn hoặc tài liệu hướng dẫn đơn giản về cách sử dụng Json trong Play 2.3 không? Ngoài ra, bạn có thể giải thích lỗi 'Không thể giải quyết biểu tượng và' (và 'không thay thế') trong nội dung ẩn ban đầu mà tôi đã thử không? (xem câu hỏi được cập nhật, tôi đã đặt mã ở đó) – null
Để giải quyết lỗi biểu tượng bạn cần nhập 'play.api.libs.functional.syntax._'. Các liên kết tài liệu mà tôi đã cung cấp sẽ trả lời câu hỏi của bạn về 'unlift' cũng như chứa đủ thông tin chung về Play JSON. – edi
Xin chào, một lần nữa, cảm ơn rất nhiều sự giúp đỡ. Tôi tự hỏi tại sao Intellij không thể phát hiện việc nhập khẩu. – null