私はjsonからデータをケースクラスに抽出しようとしましたが、成功しませんでした。jsonファイルからケースクラスを抽出するscala play
JSONファイル:
[
{
"name": "bb",
"loc": "sss",
"elements": [
{
"name": "name1",
"loc": "firstHere",
"elements": []
}
]
},
{
"name": "ca",
"loc": "sss",
"elements": []
}
]
私のコード:
case class ElementContainer(name : String, location : String,elements : Seq[ElementContainer])
object elementsFormatter {
implicit val elementFormatter = Json.format[ElementContainer]
}
object Applicationss extends App {
val el = new ElementContainer("name1", "firstHere", Seq.empty)
val el1Cont = new ElementContainer("bb","sss", Seq(el))
val source:String=Source.fromFile("src/bin/elementsTree.json").getLines.mkString
val jsonFormat = Json.parse(source)
val r1= Json.fromJson[ElementContainer](jsonFormat)
}
R1の内側になって、このIMを実行した後:
JsError(一覧((/要素、リスト(ValidationErrorを(/ location、List(ValidationError(List(error.path.missing)、WrappedArray())))))、 (間違いor.path.missing)、WrappedArray())))))
は永遠にこのデータを抽出しようとしては、
JSONの要素の名前は、caseクラスの対応する変数の名前と一致する必要があります(デフォルトの 'Json.format'フォーマッタを使用している場合)。したがって、例えば 'location'は' loc'に名前を変更する必要があります。 – irundaia
このチュートリアルでjsonとcaseクラスを解析する方法を確認してください。http://pedrorijo.com/blog/scala-json/とhttp://pedrorijo.com/blog/scala-json-part2/ playを使ってjsonを正しく解析する。注:あなたの答えは、JSON – pedrorijo91
thxを再生するよりも、https://github.com/travisbrown/circeがより強力で使いやすいように思えます。非常に有益で役立ちます。 :) –