Всем привет! Подскажите плз, как решить проблему. Задача - есть json, из которого нужно сделать новый и поменять в нем(в новом) некоторые значения. Столкнулся с проблемой, что когда я меняю какое-либо значение в новом json’e, то в старом jsone тоже происходят точно такие же изменения. Вероятно я меняю объект на который ссылается и старый и новый json. Так вот как мне сделать правильно, чтобы в новый json вставились именно значения(ну или копия объекта, с другой ссылкой)? Вероятно вопрос нубский, но я что-то туплю
import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
class FileExample {
static void main(String[] args) {
def jsonResponse = new JsonSlurper().parseText("""{"bundles": [{"startDate": "2021-05-18T09:36:00.000+0300","status": "OK"}]}""")
def tmp = new JsonSlurper().parseText("{}")
def newBuilder = new JsonBuilder(tmp)
// старые данные
newBuilder.content.oldBundle = jsonResponse.bundles[0]
// сначала добавляем старые данные, затем поменяем инфу внутри блока newBundle
newBuilder.content.newBundle = jsonResponse.bundles[0]
def now = new Date()
newBuilder.content.newBundle.startDate = now.format("yyyy-MM-dd'T'HH:mm:ss.SSS'+0300'")
newBuilder.content.newBundle.remove('status')
println("new json")
println(newBuilder.toPrettyString())
println "old json\r" + jsonResponse.bundles[0]
}
}
----------
new json
{
"oldBundle": {
"startDate": "2021-05-18T12:12:07.643+0300"
},
"newBundle": {
"startDate": "2021-05-18T12:12:07.643+0300"
}
}
old json
[startDate:2021-05-18T12:12:07.643+0300]