slurperrsesponse
- это объект, а не строка, поэтому конкатенация не работает
Json Slurper создает объект из входной строки. Этот объект является динамическим c по своей природе, вы можете получить к нему доступ, вы можете добавить к нему поля или изменить существующие поля. Contatenation здесь не сработает.
Вот пример:
import groovy.json.*
def text = '{"total" : 2, "students" : [{"name": "John", "age" : 20}, {"name": "Alice", "age" : 21}] }'
def json = new JsonSlurper().parseText(text)
json.total = 3 // alter the value of the existing field
json.city = 'LA' // add a totally new field
json.students[0].age++ // change the field in a list
println json
Это дает вывод:
[total:3, students:[[name:John, age:21], [name:Alice, age:21]], city:LA]
Теперь, если я вас правильно понял, вы Вы хотите добавить нового студента динамически, и ввод представляет собой текст, который вы прочитали из Excel. Итак, вот пример:
json.students << new JsonSlurper().parseText('{"name" : "Tom", "age" : 25}')
// now there are 3 students in the list
Обновление
Также возможно получить значения без «жесткого кодирования» имени свойства:
// option 1
println json.city // prints 'LA'
// option 2
println json.get('city') // prints 'LA' but here 'city' can be a variable
// option 3
println json['city'] // the same as option 2