Изменение json с помощью jsonbuilder в Groovy
Я пытаюсь изменить содержимое JSON, а затем распечатать его, чтобы увидеть, если он изменился с этим кодом, но получаю ошибку
def builder = new JsonBuilder(request)
log.info(builder.content)
builder.content.device.dpidsha1= 'abcd'
log.info(builder.toPrettyString())
ошибка:
no such property: device
JSON выглядит так:
{
"app":{ },
"at":2,
"badv":[ ],
"bcat":[ ],
"device":{
"carrier":"310-410",
"connectiontype":3,
"devicetype":1,
"dnt":0,
"dpidmd5":"268d403db34e32c45869bb1401247af9",
"dpidsha1":"1234",
.
.
}
Может ли кто-нибудь помочь понять, что я делаю неправильно и как я могу это исправить.
1 ответ
Решение
Вам нужно разобрать входящий контент, изменить его с помощью JsonBuilder
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def content = """
{
"app":{ },
"at":2,
"badv":[ ],
"bcat":[ ],
"device":{
"carrier":"310-410",
"connectiontype":3,
"devicetype":1,
"dnt":0,
"dpidmd5":"268d403db34e32c45869bb1401247af9",
"dpidsha1":"1234"
}
}"""
def slurped = new JsonSlurper().parseText(content)
def builder = new JsonBuilder(slurped)
builder.content.device.dpidsha1 = 'abcd'
println(builder.toPrettyString())