Как разобрать объект JsonSluper?

У меня есть следующее JsonSluper объект:

[ [id:5017,feature:age,value:20],
  [id:2017,feature:city,value:paris],
  [id:3017,feature:country,value:france] ]

и я хочу получить следующее JsonObject:

"person":{
    "age":20,
    "city":paris,
    "country":france
}

Я хочу превратить feature значение JsonSluper в поле JsonObject

1 ответ

Решение

Это карта, а не "объект JsonSlurper"

Предполагая, что у вас есть что-то вроде:

def object = [[id:5017,feature:'age',value:20],[id:2017,feature:'city',value:'paris'],[id:3017,feature:'country',value:'france']]

Тогда просто сделайте:

def json = new JsonBuilder(object).toPrettyString()

затем json будет красивое представление JSON, как:

[
    {
        "id": 5017,
        "feature": "age",
        "value": 20
    },
    {
        "id": 2017,
        "feature": "city",
        "value": "paris"
    },
    {
        "id": 3017,
        "feature": "country",
        "value": "france"
    }
]

Чтобы сделать преобразование, просто сделайте:

def transformed = object.collectEntries { [it.feature, it.value] }
def json = new JsonBuilder(transformed).toPrettyString()
Другие вопросы по тегам