我有一个像这样的json列表结构,我们如何读取这个结构并在scala中转换成列表,播放framwork。
{
"0":{
"name":"Foo",
"age":10
},
"12":{
"name":"Bar",
"age":10
}
.
.
.
}如果有像下面这样的json结构,我可以很容易地完成,但由于我不是那么精通解析Json,而且实际上也是scala的新手,我不能理解如何使用像第一个例子中那样关键字为"0","12“的Json结构。我一直在为Jackson使用Jerkson wrapper来生成/解析json/case-class。
{
{"name":"Foo","age":10},
{"name":"Bar",age:11}
}更新:
除了Ryans answer之外,我还成功地解析了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“键->值对,而有些可能没有。那么,我们如何处理这样的情况呢?有什么想法吗?
发布于 2014-11-25 23:34:43
case class Doodad(name: String, age: Int)
object Doodad {
implicit val fmt = Json.format[Doodad]
}
myJsValue.validate[Map[String, Doodad]] // JsResult[Map[String, Doodad]]https://stackoverflow.com/questions/27130638
复制相似问题