0

私のデータをjsonからケースクラスに抽出しようとしていますが、成功していません。

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の中に入ります:

JsError(List((/elements,List(ValidationError(List(error.path.missing),WrappedArray()))), (/name,List(ValidationError(List(error.path.missing),WrappedArray())) ), (/location,List(ValidationError(List(error.path.missing),WrappedArray())))))

このデータを永遠に抽出しようとしています。アドバイスしてください

4

1 に答える 1

0

location代わりに、単一の ではなく配列であるため、locファイルを に解析する必要があります。Seq[ElementContainer]ElementContainer

Json.fromJson[Seq[ElementContainer]](jsonFormat)

また、validateエラーまたは解析されたjsonオブジェクトのいずれかを返すメソッドがあります..

于 2016-07-14T14:40:45.500 に答える