Преобразование Jolt помещает значение в неправильный элемент массива

#json #transformation #jolt

#json #преобразование #jolt

Вопрос:

У меня проблема с моей трансформацией Jolt, но я понятия не имею, как это исправить. Значение добавляется к неправильному элементу массива, а не к тому, к которому оно принадлежит.

Это мой JSON :

 {
  "Verkaufsprodukt": [
    {
      "Produkt": [
       {
         "Kurzbeschreibung": "A"
       },
       {
         "Kurzbeschreibung": "B",
         "Kondition": [
           {
             "Bezeichnung": "something"
           }
         ]
       }
     ]
   }
  ]
}
  

Это спецификация:

 [
  {
    "operation": "shift",
    "spec": {
      "Verkaufsprodukt": {
        "*": {
          "Produkt": {
            "*": {
              "Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
              "Kondition": {
                "*": {
                  "Bezeichnung": "vertragsdetails.deckungen[amp;1].kondition"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "vertragsdetails": {
        "deckungen": "MANY"
      }
    }
  }
]
  

Я ожидаю этого:

 {
  "vertragsdetails": {
    "deckungen": [
      {
        "bezeichnung": "A"
      },
      {
        "bezeichnung": "B",
        "kondition": "something"
      }
    ]
  }
}
  

но получил это:

 {
  "vertragsdetails": {
    "deckungen": [
      {
        "bezeichnung": "A",
        "kondition": "something"
      },
      {
        "bezeichnung": "B"
      }
    ]
  }
}
  

Почему «условие» добавляется к первому элементу, а не ко второму, к которому оно принадлежит?
кто-нибудь может помочь, пожалуйста?
Спасибо!

Комментарии:

1. вы пробовали использовать подстановочный знак amp; и другой уровень??? oder so?

Ответ №1:

проблема в подстановочном знаке, который вы используете в спецификации jolt, вы должны перейти на 3 уровня вверх вместо 1, например:

 "Bezeichnung": "vertragsdetails.deckungen[amp;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" ]
    } ]
  }
}
  

Комментарии:

1. Спасибо, это работает 🙂 Я думал , что попробовал это , и это не сработало . Но это так 🙂 Я признаю, что не совсем понял эту вещь [amp; x].

2. jolt muss улучшает документ … на данный момент действительно неясен и совсем не интуитивно понятен….