Как разобрать объект 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()