im пытается извлечь мои данные из json в класс case без успеха.извлечение примеров из 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)
}
после запуска этого им получать в Г1:
JsError (Список ((/ элементы, Список (ValidationError (List (error.path.missing), WrappedArray()))), (/ name, List (ValidationError (List (error.path.missing), WrappedArray()))), (/ location, List (ValidationError (List (ERR 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/ надеюсь, что это поможет понять, как parse json правильно использовать игру. Примечание: https://github.com/travisbrown/circe кажется более мощным и простым в использовании, чем Play JSON – pedrorijo91
thx для ваших ответов, очень информативный и полезный! :) –