我想在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}"
答案 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"}