Как установить значение Json внутри массива - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть следующий JSON в массиве, и когда я пытаюсь установить значение для этого JSON, сценарий проходит, но значение не устанавливается:

{
    "langauageCode": "en-US",
    "Test": [{
        "_modificationTypeCode": "added",
        "allocationTypeCode": "3",
        "code": "Test1"
    }]
}

Мой код:

def jsonRequest = slurper.parseText(rawRequest)
def builder = new JsonBuilder(jsonRequest)
builder.content.Test.code[0] ='Test2' //Code value is not getting set to 'Test2'
log.info  builder.toPrettyString()

Не правильно ли я установил значение?

1 Ответ

2 голосов
/ 04 апреля 2019

Я предполагаю, что slurper является экземпляром JsonSlurper.Если это так, то вообще не нужно использовать JsonBuilder, поскольку sluper возвращает экземпляр Map.Итак:

import groovy.json.JsonSlurper
import groovy.json.JsonOutput

def req = '''{
    "langauageCode": "en-US",
    "Test": [{
        "_modificationTypeCode": "added",
        "allocationTypeCode": "3",
        "code": "Test1"
    }]
}'''
def slurped = new JsonSlurper().parseText(req)
slurped.Test[0].code = 'Test2'

println JsonOutput.prettyPrint(JsonOutput.toJson(slurped))
...