Я пытаюсь сделать JSON для преобразования JOLT, но я застрял в формате вложенного массива - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь сделать Transform jolt, но у меня возникают проблемы во вложенном массиве. Я не получаю значение описания. Я вставил код JSON. Ввод

{
  "id": 3,     
  "name": "Sample Product",
  "attribute_set_id": 4,
  "price" : 10,
 "custom_attributes": [
    {
      "attribute_code": "image",
      "value": "/1/_/1.jpg"
    },        
    {
      "attribute_code": "description",
      "value": "<p>This is Sample Product for test</p>"
    }        
  ]  
}

И мой Jolt Spec:

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",         
      "name": "name",
      "description": "custom_attributes[0].attribute_code.value"
    }
]

Мой ожидаемый вывод

{
  "id" : 3,
  "name" : "Sample Product",
 "description" : "<p>This is Sample Product for test</p>",
 "image" : "/1/_/1.jpg",
 "start_price" : 10,
 "current_price" : 10
}

1 Ответ

2 голосов
/ 03 октября 2019

Если "attribute_code": "image" и "attribute_code": "description" всегда появляются в 1-м и 2-м элементе массива, вы можете просто преобразовать данную строку JSON с помощью следующей спецификации Jolt:

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",
      "name": "name",
      "custom_attributes": {
        "1": {
          "value": "description"
        },
        "0": {
          "value": "image"
        }
      },
      "price": ["start_price", "current_price"]
    }
  }
]
...