3

処理したいJSONリストは次のとおりです。

scala> jsonStructure \ "response" \ "docs"
res4: play.api.libs.json.JsValue = [{"title":"the very first document"},{"title":"on brick walls"}]

私はそれをリストに変換しようとしましたが、別のセマンティクスを持つもの、つまりそのリストだけを要素とするリストを取得しました:

scala> jsonStructure \ "response" \\ "docs"
res3: Seq[play.api.libs.json.JsValue] = List([{"title":"the very first document"},{"title":"on brick walls"}])

scala> res3.size
res4: Int = 1

私はトリックを行うこのクラッジを試しました:

scala> (jsonStructure \ "response" \ "docs").as[Seq[play.api.libs.json.JsValue]]
res9: Seq[play.api.libs.json.JsValue] = List({"title":"the very first document"}, {"title":"on brick walls"})

scala> res9 size
res10: Int = 2

なぜ機能しなかったの\\ですか?JsValue を JsArray に理解する慣用的な方法は何ですか? 「ナビゲーションを使用して\決して失敗しない」という哲学を維持しながら?リスト要素であった obj 内の obj のリストのように、より深い構造を解析したい。深くネストされた構造で扱いにくくならない方法が必要です。

複雑で脆いなどの場合は、私のアプローチを自由に修正してください。

4

1 に答える 1