2017-08-24 34 views
0
val json = Json.parse(jsonString) 
(json \ "theme" \ "structure" \ "layers") 

的层JSON关键是按顺序编号喜欢播放的Json地图对象键

{0: {}, 1: {}, 2: {}} 

键的对象,我不知道多少个键会出现或按键只的模式我钥匙即时试图检索每一个存在。

我可以用

(json \ "theme" \ "structure" \ "layers" \ "0" \ "mykey") 

访问它们但有时有上百个图层我需要能够以编程方式遍历他们检查每一个“的myKey”的价值。

回答

0
(json \ "theme" \ "structure" \ "layers") 
    .get 
    .as[Map[String, JsObject]] 
    .map(x => (x._1, (x._2 \ "mykey").get.as[String])) 

这对我有用。

+0

使用'.get'是不安全的/一个不好的做法,对'Option'或'Try' – cchantep