如何使用scala读取嵌套的Json?

时间:2014-09-26 11:19:44

标签: json scala

我正在使用scala来分离json。 我有以下Json结构 -

"commands":{
"myinfo": [
    {
        "utilization": {
            "sizeBytes": 998848331776,
            "usedBytes": 408722341888,
            "freeBytes": 590125989888
        },
        "name": "ds1",
        "addons": [
            "PQR",
            "ABC"
        ],
        "otherInfo": {
            "model": "MRSASRoMB-4i",
            "name": "naa.6d867d9c7acd60001aed76eb2c70bd53",
            "vendor": "LSI"
        }
    }
]
}}

我想读取otherInfo,利用率等的值。 我可以使用以下代码读取名称的值 -

val commandInfo = (rawData \ "Commands").as[JsValue]
(commandInfo \ "myInfo").as[List[JsObject]].map { myJson =>
val name =  (myJson \  "name").asOpt[String]
}

我在scala中使用case类。 如何获得' otherInfo','插件'等使用scala?

1 个答案:

答案 0 :(得分:1)

您使用的是dispatch的JSON支持吗?如果是这样,那么您可能需要考虑使用 json4s ,这与事实上的标准非常相似。

我个人会考虑尝试使用SON of JSON代替,这会让名字变得轻而易举:

commands.myinfo.otherinfo.name.as[String]

...但话又说回来,那是我自己写的东西的无耻插件。 ; - )