Как сгенерировать вложенный массив произвольной длины в groovy на JSON
Необходимо сгенерировать JSon на groovy следующего вида
{param1: value1,
param2: value2,
someData: [{param3: value3,id: "0"}, {param3: value3,id: "1"}, ..., {param3: value3,id: "n-1"},}
Я делаю так
json{
param1 value1
param2 value2
someData {
for (int i=0; i<n; i++) {
{param3: value3,id: "${i}"}}
}
Но получается что someData просто перезаписывается.
{param1: value1,
param2: value2,
someData: [{param3: value3,id: "n-1"}}
Как именно дописывать данные в someData?
Так же через someData.add() ничего не добавляется.
{def someData []
for(int i=0; i<n; i++) {
someData.add({param3: value3,id: "${i}"})
}}
Ответы (1 шт):
Автор решения: Dmitri T
→ Ссылка
Попробуйте такое:
def someData = []
1.upto(5, { id ->
someData.add(['param3': 'value3', 'id': id as String])
})
def payload = ['param1': 'value1', 'param2': 'value2', 'someData': someData]
log.info(new groovy.json.JsonBuilder(payload).toPrettyString())
Немного полезных ссылок: