Порядок преобразования полей Jolt

#json #jolt

#json #jolt

Вопрос:

Я ввел следующий входной json

 {
  "NAME1": "Mueller",
  "NAME2": "Max",
  "STREET1": "Adlerstr.",
  "STREET2": "1",
  "COUNTRY": "Munich"
}
 

Я переименовал название полей и объединил поля street *

 [
  {
    "operation": "shift",
    "spec": {
      "NAME1": "name",
      "NAME2": "surName",
      "STREET1": "tmp_street1",
      "STREET2": "tmp_street2",
      "COUNTRY": "country"
    }
  },
  {
    "operation": "modify-default-beta",
    "spec": {
      "street": "=concat(@(1,tmp_street1),' ',@(1,tmp_street2))"
    }
},
  {
    "operation": "remove",
    "spec": {
      "tmp_*": ""
    }
  }
]
 

Я получаю следующий результат

 {
  "name" : "Mueller",
  "surName" : "Max",
  "country" : "Munich", // Should be after the street field 
  "street" : "Adlerstr. 1" 
}
 

Возможно ли переместить поле street на 3-ю позицию в выводе json?

Ответ №1:

Да, поле street может быть перемещено на 3-ю позицию вывода json всего двумя операциями.

Проверьте эту спецификацию,

 [
  {
    "operation": "modify-default-beta",
    "spec": {
      "street": "=concat(@(1,STREET1),' ',@(1,STREET2))"
    }
},
  {
    "operation": "shift",
    "spec": {
      "NAME1": "name",
      "NAME2": "surName",
      "street": "street",
      "COUNTRY": "country"
    }
  }
]