2014-09-26 4 views
0

Я использую scala для разделения json. У меня после Json корпусногоКак читать вложенный Json с помощью scala?

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

Я хочу прочитать значение otherInfo, утилизации и т.д. я могу прочитать значение имени, используя следующие code-

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

Я использую классы случае в Скале , Как получить значения «otherInfo», «addons» и т. Д. С помощью scala?

+0

какую библиотеку вы используете в Scala для обработки JSON? Глядя на свой код, возможно, вы используете Play framework. Вы можете подтвердить, а также проверить это https://www.playframework.com/documentation/2.2.x/ScalaJson – tuxdna

ответ

1

Вы используете поддержку JSON для отправки? Если это так, тогда вам, возможно, стоит подумать об использовании json4s, что немного похоже на стандарт де-факто.

лично я хотел бы рассмотреть пытаюсь использовать SON of JSON вместо этого, что сделало бы получать имя из ветра:

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

... но опять же, это бесстыдный плагин что-то я написал сам. ;-)