Вот мой код для объединения двух jsons в один ... Есть ли лучший способ?
Ожидаемое поведение - получить «большой json» с суммой «entry jsons» и нет«type-XX» перекрывается и сохраняет самый длинный список «rc []».
def json_src1 = '''
{
"branch": {
"type-0.2": {
"version": "0.2",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
}
}
'''
def json_src2 = '''
{
"branch": {
"type-0.3": {
"version": "0.3",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
}
}
'''
def concatenateJsons(json_src1, json_src2){
def json = json_src1 + json_src2
return json
}
Чтобы изменить строки на объекты json:
json_src1 = new JsonSlurper().parseText(json_src1)
json_src2 = new JsonSlurper().parseText(json_src2)
Для объединения
json = concatenateJsons(json_src1, json_src2)
println JsonOutput.prettyPrint(JsonOutput.toJson(json))
Ожидаемый результат:
{
"branch": {
"type-0.2": {
"version": "0.2",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
"type-0.3": {
"version": "0.3",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
}
}
PS Я теряю порядок элементов внутри Json после слияния без видимой причины: ("version": "0.3"
перемещается на дно в type-03 {}:
Вместо:
{
"branch": {
"type-0.2": {
"version": "0.2",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
"type-0.3": {
"version": "0.3",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
}
}
Я получаю
{
"branch": {
"type-0.2": {
"version": "0.2",
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]"
}
"type-0.3": {
"rc": "[17, 18, 19, 20, 21, 22, 23, 24]",
"version": "0.3"
}
}
}