我有一个JSON输入,我想将其转换为另一个可以轻松存储在Java POJO中的JSON.对我来说,数组 struct 最合适,因为它可以很容易地构造.
我有一个如下所示的输入JSON:
{
"rating-1": {
"min": 1,
"max": 2
},
"rating-2": {
"min": 3
}
}
我想将此JSON转换为在创建Java POJO时易于存储的内容:
{
"Ratings" : [
{
"rating": "rating-1",
"min": 1,
"max": 2
},
"rating-2" : {
"rating": "rating-2",
"min" : 3
}
]
}
我能想到的最接近的是以下Jolt规范(请注意,输入JSON inside Rating-*中的几个元素可以为空或空:
[
{
"operation": "shift",
"spec": {
"rating-*": {
"$": "Ratings[#0].&1.rating",
"min": "Ratings[#0].&1.min",
"max": "Ratings[#0].&1.max"
}
}
}
]
它给出了以下输出JSON:
{
"Ratings" : [ {
"rating-1": {
"rating": "rating-1",
"min": 1,
"max": 2
},
{
"rating": "rating-2",
"min": 3
}
} ]
}
问题是这会创建一个额外的键"Rating-1"/"Rating-2",这在为JSON创建Java对象时很麻烦.应该编写什么JSON规范才能将其修改为我预期的输出?