Разобрать JSON и преобразовать объект обратно в JSON - PullRequest
0 голосов
/ 31 января 2020

Я хочу проанализировать вложенную структуру JSON в Groovy. Я хотел бы проанализировать структуру подэлемента и затем вернуть строку в формате JSON.

Структура Nested 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, чтобы получить вложенную структуру deviceapp в raw JSON? Спасибо.

: def slurper = new JsonSlurper (). ParseText (json) Строка deviceAppParsed = slurper.deviceapp def jsonDeviceApp = JsonOutput.to Json (deviceAppParsed)

Я ожидал печати 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 Ответ

1 голос
/ 31 января 2020

просто замените 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"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...