Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析JSON并将对象转换回JSON_Json_Groovy - Fatal编程技术网

解析JSON并将对象转换回JSON

解析JSON并将对象转换回JSON,json,groovy,Json,Groovy,我想在Groovy中解析一个嵌套的JSON结构。我想解析一个子元素结构,然后返回JSON格式的字符串 嵌套的JSON结构: { "username": "test", "token": "test1", "url": "http://www.abc.to", "testsession": { "serverName": "0.0.0.0", "serverPort": 22, "remoteUsername"

我想在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=new JsonSlurper.parseTextjson 字符串deviceAppParsed=slurper.deviceapp def jsonDeviceApp=JsonOutput.tojsondeviceapparsed

我希望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}"
只需将以下行中的字符串替换为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"}

请说得具体一点,我没有给我想要的。展示你得到的结果,你期望的结果,以及你试图解释的差异。