2017-05-31 11 views
0

私はスカラ・プレイを使用しており、特定の名前の値に特定の名前の値を持つ子があることを検証するためにjsonツリーをトラバースしようとしています。私はJSObjectをの形で以下のJSONを持っている:スカラ・プレイでネストされた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": [ ] } ] } ] } 

理想的には私が通過するループの入れ子に使用しますが、JSObjectの構造は、トラバースを試みる際に基礎となる値にアクセスするから私を妨げています。私もJsObjectを[Map [String、Map [String、Any]]]型のマップにマッピングしようとしましたが、無効なキャストコンパイラエラーが発生しています。

各レベルで名前の値をどのようにトラバースして検証できるかについてのヒントがあれば幸いです。私は好ましくは、プレイjsonライブラリを使用したいです

答えて

0

私が使用しようとしていたケースクラスに問題がありました。私はJson構造の帰納的性質を考慮していませんでした。

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

関連する問題