請看API和play! website的例子。他們提供關於JSON的綜合指南。由於play.api.libs.json
包僅包含7種JSON數據類型(JsObject
,JsNull
,JsUndefined
,JsBoolean
,JsNumber
, JsArray
和JsString
),您將不得不定義自己的格式。
從API摘自:
case class User(id: Long, name: String, friends: List[User])
implicit object UserFormat extends Format[User] {
def reads(json: JsValue): User = User(
(json \ "id").as[Long],
(json \ "name").as[String],
(json \ "friends").asOpt[List[User]].getOrElse(List()))
def writes(u: User): JsValue = JsObject(List(
"id" -> JsNumber(u.id),
"name" -> JsString(u.name),
"friends" -> JsArray(u.friends.map(fr => JsObject(List("id" -> JsNumber(fr.id),
"name" -> JsString(fr.name)))))))
}
//then in a controller:
object MyController extends Controller {
def displayUserAsJson(id: String) = Action {
Ok(toJson(User(id.toLong, "myName", friends: List())))
}
def saveUser(jsonString: String)= Action {
val user = play.api.libs.json.parse(jsonString).as[User]
myDataStore.save(user)
Ok
}
}
祝你好運!
請給社區更多信息來重現問題。首先是遊戲版本號,第二是導入,至少有四個Json類在使用,最重要的是給我們編譯錯誤。 – Schleichardt
您可以刪除'new'關鍵字,因爲它們不需要與案例類組合使用。 – fynn