JOLT преобразование на основе условия соответствия

#json #jolt

#json #jolt

Вопрос:

Я пытаюсь преобразовать JSON в JSON использование JOLT на основе условия соответствия.

Если ‘type’: ‘true’, выполните обработку.

JSON ввод:

 {
     "features": [
        {
           "type": "true",
           "properties": {
           "class_lvl": "U",
           "image_url": [
              "http://www.google.com/149231_294002.jpg",
              "https://www.google.com/149231_294002.jpg"
           ],
           "review_date": "2019-03-27T15:42:02.523"              
         }
      }
    ]
  }
  

JOLT Спецификации, которые я придумал, но они генерируются не так, как я хочу:

  [
      {
          "operation": "shift",
          "spec": {
          "features": {
            "*": {
              "properties": {            
               //go up one level and check if type = true then copy image URL
                "@(1,type)": {              
                  "true": {
                    "image_url": "Parent[amp;3].child.grandchild"
                  }
                }
              }
            }
          }
        }
      }
   ] 
  

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

1. При JSON попытке получить RemarkComposite ключ дублируется, что рассматривается как ошибка. Большинство JSON десериализаторов пропускают один во время десериализации.

Ответ №1:

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

 [
  {
    "operation": "shift",
    "spec": {
      "features": {
        "*": {
          //"type": "Parent[#].child.grandchild.type",
          "properties": {
            //go up one level and check if type = true then copy image URL
            "@(1,type)": {
              "true": {
                "@2": "Parent[#].child.grandchild"
              }
            }
          }
        }
      }
    }
  }
  ]