Java 如何在Groovy中处理动态JSON元素

Java 如何在Groovy中处理动态JSON元素,java,grails,groovy,Java,Grails,Groovy,我有一个类似于以下内容的JSON: {“test”:{“red”:“on”,“green”:“off”,“yellow”:“on”},“test1”:{“red”:“off”,“green”:“on”,“yellow”:“off”},“test2”:{“red”:“on”,“green”:“off”,“yellow”:“off”} 我已经用下面的代码对其进行了迭代: JSONObject t = JSON.parse(params.myObject) t.each { id,

我有一个类似于以下内容的JSON:

{“test”:{“red”:“on”,“green”:“off”,“yellow”:“on”},“test1”:{“red”:“off”,“green”:“on”,“yellow”:“off”},“test2”:{“red”:“on”,“green”:“off”,“yellow”:“off”}

我已经用下面的代码对其进行了迭代:

    JSONObject t = JSON.parse(params.myObject)

    t.each { id, data ->
        println id
        println data.red
        println data.green
        println data.yellow
    }
但是,有时我可以在JSON对象中动态地使用不同的值。例如(添加了新颜色):

{“test”:{“red”:“on”,“green”:“off”,“yellow”:“on”,“pink”:“on”},“test1”:{“red”:“off”,“green”:“on”,“yellow”:“off”,“pink”:“on”},“test2”:{“red”:“on”,“green”:“off”,“yellow”:“off”,“pink”:“on”}

问题

有没有一种方法可以在不硬编码代码中颜色的情况下迭代所有json

我明白了

我可以简单地以类似的方式迭代这些值:

    t.each { id, data ->
        println id
        data.each {id1, d ->
            println id1
            println  d
        }
    }
JSONObject t = JSON.parse(params.myObject)
t.each { id, data ->
    println id
    data.each { prop, value ->
       println prop + " = " + value
    }
}