在scala中遍历嵌套的json

时间:2017-05-31 21:36:06

标签: json scala playframework

我正在使用scala play并尝试遍历json树,以验证特定名称值是否具有特定名称值的特定子项。我有一个JsObject形式的以下Json:

{ "name": "user", "children": [ { "name": "$a", "children": [ { "name": "foo", "children": [  ] }, { "name": "fooBar", "children": [ { "name": "$a", "children": [ { "name": "subFoobar1", "children": [  ] }, { "name": "subFoobar2", "children": [ { "name": "TEST", "children": [  ] } ] }, { "name": "subFoobar3", "children": [  ] } ] } ] }, { "name": "bar", "children": [ { "name": "$a", "children": [  ] }, { "name": "$c", "children": [  ] }, { "name": "$b", "children": [  ] } ] }, { "name": "barFoo", "children": [  ] } ] } ] }

理想情况下,我会使用嵌套for循环来遍历,但JsObject结构阻止我在尝试遍历时访问底层值。我还尝试将JsObject映射到[Map [String,Map [String,Any]]]类型的映射,但是我得到了无效的强制转换编译器错误。

有关如何遍历和验证每个级别的名称值的任何提示将不胜感激。我最好喜欢使用play json库

1 个答案:

答案 0 :(得分:0)

问题出在我试图使用的案例类中。我没有考虑我的Json结构的递归性质

case class ActorTree(name : String, children:Seq[ActorTree] )