解析した後にJson配列を操作するのに問題があります。Play 2.1.1を使用したJSONでの配列の繰り返しと再フォーマット
Iは、POSTメソッドを使用してJavaScriptで以下のJSONオブジェクトを渡す:[{ "ID": "someid"}、{ "ID": "anotherid"}]私はアンディのセットアップを使用している
(Iterating over an array in JSON with Play 2.1.1) POSTメソッドを使用して通過し、JSONエンコードされた配列を解析する。これは、それが必要として動作
case class FBUser(
id: String
){}
object FBUser {
/** Uses a Scala Macro to define the Reads function */
implicit val userReads: Reads[FBUser] = Json.reads[FBUser]
implicit val fbUserFormat:Format[FBUser] = Json.format[FBUser]
}
def doQuery = Action (parse.json){ implicit request =>
val readIDFromInput = (__).read[List[FBUser]]
val IDs = request.body.validate(readIDFromInput)
IDs.map(
item => Ok(Json.toJson(item))
).recoverTotal{
err => BadRequest(JsError.toFlatJson(err))
}
}
(Iは便宜上コントローラにコードを移動):それは読み出してJSONオブジェクトを返します。新しい変数を作成するためにJsonオブジェクトを使用するのに問題があります。この場合、Iは{[ "someid"、 "anotherid"]}(すなわち、 "ID" なし、である)
まずなどJSONオブジェクトを構築したい私が試した:item => Ok(Json.toJson(item.id)) // trying to access item.id
しかし、これは生じましたエラー:値IDはオブジェクトコントローラのメンバーではありません.ScalaPoster.FBUser
オブジェクトに関数を追加しようとしました(def getId():String = { return this.id }
)。その(item.getId()
)にアクセスすると、同じエラーが発生します。
すべてのサポートは高く評価されています。
編集(足りない評判自分の質問に答えるために):これは他の人:)