我有一个像这样的json列表结构,我们如何读取这个结构并在scala中转换为列表,播放framwork。
{
"0":{
"name":"Foo",
"age":10
},
"12":{
"name":"Bar",
"age":10
}
.
.
.
}
如果,有下面的json结构,我本可以轻松完成它,但由于我不是那么精通解析Json而且实际上也是scala的新手,我无法理解如何使用Json结构有关键作为" 0"," 12"就像在第一个例子中一样。我一直在使用Jerkson包装器来生成/解析json / case-class。
{
{"name":"Foo","age":10},
{"name":"Bar",age:11}
}
更新
除了Ryans回答之外,我实际上成功地解析了json结构,
import play.api.libs.json._
case class Doodad(name: String, age: Int)
object Doodad {
implicit val fmt = Json.format[Doodad]
def parserFuntion = {
var myJsValue: JsValue = Json.parse(jsonString)// added line in the ans
var requiredMap = myJsValue.validate[Map[String, Doodad]]
}
}
但是现在我有一个新问题,我使用的json结构似乎有点不规则,例如:
{
"0":{
"name":"Foo",
"age":10
},
"12":{
"name":"Bar",
"age":10
},
"13":{
"name":"Foobar"
"age":20,
"meta":{
"desc":"Irregular Json",
"img":"Some Link"
}
},
.
.
.
}
有些json列表元素可能会有额外的" meta" key->值对,有些可能不对。那么,我们如何处理这种情况呢。任何想法??
答案 0 :(得分:0)
case class Doodad(name: String, age: Int)
object Doodad {
implicit val fmt = Json.format[Doodad]
}
myJsValue.validate[Map[String, Doodad]] // JsResult[Map[String, Doodad]]