Как объединить 2 массива JSON в Groovy? - PullRequest
0 голосов
/ 01 марта 2019

Попытка объединить 2 массива Json в 1 в groovy.

def branchTags = new JsonBuilder()
    branchTags branches, { String branch ->
        tag branch
        type 'b'
    }
    println(branchTags.toString()) 
    //generates [{"tag":"Branch","type":"b"},{"tag":"Branch1","type":"b"}]

    def releaseTags = new JsonBuilder()
    releaseTags releases, {String release ->
        tag release
        type 'r'
    }
    println(releaseTags.toString())
    //generates [{"tag":"Release","type":"r"},{"tag":"Rel1","type":"r"}]

    /*def newTags = new JsonBuilder()
    branchTags.each {k,v -> newTags.}*/
    def slurper = new JsonSlurper()
    def input = slurper.parseText(branchTags.toString())
    def res = slurper.parseText(releaseTags.toString())

    def joined = [input, res].flatten()
    println joined.toString()
    //this generates [{"tag":"Branch","type":"b"},{"tag":"Branch1","type":"b"}][{"tag":"Release","type":"r"},{"tag":"Rel1","type":"r"}]

Мне нужно:

[
   {"tag":"Branch","type":"b"},
   {"tag":"Branch1","type":"b"}, 
   {"tag":"Release","type":"r"},
   {"tag":"Rel1","type":"r"}
]

TIA,

1 Ответ

0 голосов
/ 01 марта 2019

в вашем случае после анализа json у вас есть два массива.

просто используйте +, чтобы объединить два массива в один

import groovy.json.*

def branchTags = '[{"tag":"Branch","type":"b"},{"tag":"Branch1","type":"b"}]'
def releaseTags = '[{"tag":"Release","type":"r"},{"tag":"Rel1","type":"r"}]'

def slurper = new JsonSlurper()
def bArr = slurper.parseText(branchTags)
def rArr = slurper.parseText(releaseTags)

def res = bArr+rArr

println new JsonBuilder(res).toString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...