解析JSON并将对象转换回JSON

时间:2020-01-31 17:25:48

标签: json groovy

我想在Groovy中解析嵌套的JSON结构。我想解析一个子元素结构,然后以JSON格式返回字符串。

嵌套的JSON结构:

{
    "username": "test",
    "token": "test1",
    "url": "http://www.abc.to",
    "testsession":
    {
        "serverName": "0.0.0.0",
        "serverPort": 22,
        "remoteUsername": "admin",
        "remotePassword": "admin"
    },
    "deviceapp":
    {
        "repo": "abc-mvn-a-test-local",
        "path": "com/test\/test2\/test3\/mob",
        "platform": "ANDROID"
    }
}

我下面使用JSONSlurper的代码不能完全满足我的需求:

def slurper = new JsonSlurper().parseText(json)
String deviceAppParsed = slurper.deviceapp
println "deviceAppParsed " + deviceAppParsed
// returns deviceAppParsed {repo=oxp-mvn-a-rel-local, path=com/nagra/opentv/experience/mob, platform=ANDROID}
def jsonDeviceApp = JsonOutput.toJson(deviceAppParsed)
println "IS IT JSON? " + jsonDeviceApp
// returns IS IT JSON "{repo=oxp-mvn-a-rel-local, path=com/nagra/opentv/experience/mob, platform=ANDROID}"

我如何解析JSON以检索原始JSON中的嵌套deviceapp结构?谢谢。

: def slurper =新的JsonSlurper()。parseText(json) 字符串deviceAppParsed = slurper.deviceapp def jsonDeviceApp = JsonOutput.toJson(deviceAppParsed)

我希望println jsonDeviceApp返回:

{"repo": "abc-mvn-a-test-local","path": "com/test\/test2\/test3\/mob","platform": "ANDROID"}

相反,它返回:

"{repo=oxp-mvn-a-rel-local, path=com/nagra/opentv/experience/mob, platform=ANDROID}"

1 个答案:

答案 0 :(得分:1)

只需在以下行中将String替换为def

String deviceAppParsed = slurper.deviceapp

使用字符串将slurper.deviceapp返回的对象转换为字符串

应为:

def deviceAppParsed = slurper.deviceapp

在这种情况下,最后一行将显示json

{"repo":"abc-mvn-a-test-local","path":"com/test/test2/test3/mob","platform":"ANDROID"}
相关问题