问题描述
我正在查看 jolt-demo.appspot 中的前缀汤示例,这似乎几乎正是我所需要的,但是我对输入进行了小幅修改以在数组中包含多个对象,然后我将规范更改为有 * 通配符来说明数组,结果并不完全符合我的需要。我显然错过了一些基本的东西,但我不知道是什么。任何帮助将不胜感激。
输入 JSON
[
{
"rating-primary": 1,"rating-Price": 2,"rating-Design": 4,"rating-ratingDimension3": 1
},{
"rating-primary": 7,"rating-Price": 8,"rating-Design": 9,"rating-ratingDimension3": 10
}
]
规格
[
{
"operation": "shift","spec": {
"*": {
"rating-primary": "rating","rating-*": "Secondaryratings.&(0,1)"
}
}
}
]
预期输出
[
{
"rating": 1,"Secondaryratings": {
"Primary": 1,"Price": 2,"Design": 4,"ratingDimension3": 1
}
},{
"rating": 7,"ratingDimension3": 1
}
}
]
实际输出
{
"rating" : [ 1,7 ],"Secondaryratings" : {
"Price" : [ 2,8 ],"Design" : [ 4,9 ],"ratingDimension3" : [ 1,10 ]
}
}
解决方法
我想通了。这是规范,以防其他人需要它。
[
{
"operation": "shift","spec": {
"*": {
"rating-*": "[&1].SecondaryRatings.&(0,1)","rating-primary": "[&1].Rating"
}
}
}
]
'''