我的Jolt转换有问题,但不知道如何解决。 该值将添加到错误的数组元素中,而不是添加到它所属的数组元素中。
那是我的json:
A B C
0 1 0 2.0 3.0 0.720000
1 1 1 3.0 4.0 0.720000
2 2 1 3.0 4.0 0.750000
3 2 1 3.0 4.0 0.750000
39 20 0 2.0 3.0 0.666667
40 20 0 2.0 3.0 0.666667
这是规格:
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
}
]
}
]
}
]
}
我期望这样:
[
{
"operation": "shift",
"spec": {
"Verkaufsprodukt": {
"*": {
"Produkt": {
"*": {
"Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
"Kondition": {
"*": {
"Bezeichnung": "vertragsdetails.deckungen[&1].kondition"
}
}
}
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"vertragsdetails": {
"deckungen": "MANY"
}
}
}
]
但是得到了:
{
"vertragsdetails" : {
"deckungen" : [ {
"bezeichnung" : "A",
}, {
"bezeichnung" : "B"
"kondition" : "something"
} ]
}
}
为什么“ kondition”添加到第一个元素而不是第二个元素? 有人可以帮忙吗? 谢谢!
答案 0 :(得分:1)
问题出在颠簸规范中使用的通配符中,您应该将级别提高3而不是1,例如:
"Bezeichnung": "vertragsdetails.deckungen[&3].kondition"
例如这样的json:
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
},
{
"Bezeichnung": "andere something"
},
{
"Bezeichnung": "noch andere something"
}
]
},
{
"Kurzbeschreibung": "C",
"Kondition": [
{
"Bezeichnung": "x"
},
{
"Bezeichnung": "andere x"
},
{
"Bezeichnung": "noch andere x"
}
]
}
]
}
]
}
将被转换为此:
{
"vertragsdetails" : {
"deckungen" : [ {
"bezeichnung" : "A"
}, {
"bezeichnung" : "B",
"kondition" : [ "something", "andere something", "noch andere something" ]
}, {
"bezeichnung" : "C",
"kondition" : [ "x", "andere x", "noch andere x" ]
} ]
}
}