Мне нужны эти данные json в приведенном ниже формате с использованием JSONATA

#json #jsonata

#json #jsonata

Вопрос:

Ниже приведен json- мой ввод.

 {
    "payload": {
        "KA01B3432": "KA01B3432",
        "KA02A3123": "KA02A3123"
    }
}
  

Используя JSONATA, мне нужно отформатировать приведенный выше JSON в формат ниже.

 [
    {
        "KA01B3432": "KA01B3432"
    },
    {
        "KA02A3123": "KA02A3123"
    }
]
  

Я пытался payload.[$keys()] , но это приведет только к ключам в формате массива, а не ко всему объекту в формате массива.

 {
    "payload": {
        "KA01B3432": "KA01B3432",
        "KA02A3123": "KA02A3123"
    }
}
  

Для

 [
    {
        "KA01B3432": "KA01B3432"
    },
    {
        "KA02A3123": "KA02A3123"
    }
]
  

Ответ №1:

$spread(payload) делает то, что вам нужно.

Смотрите http://try.jsonata.org/S1COdDqO4

Ответ №2:

Как насчет следующего кода :

    var json = { "payload": { "KA01B3432": "KA01B34321", "KA02A3123": "KA02A31231" } };
    var array = [];
    keys = Object.keys(json.payload);
    values = Object.values(json.payload);
    for (var i = 0; i < keys.length; i  ) {
        var item = {};
        item[keys[i]] =  values[i];

        array.push(item);
    }
    console.log(array);
  

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

1. Я использовал тот же код, но все равно он не дает ожидаемого результата.

2. [ { ключ: ‘KA01B3432’, значение: ‘KA01B34321’}, {ключ: ‘KA02A3123’, значение: ‘KA02A31231’ } ] Это то, что я получил, запустив ваш код, но в ожидаемом результате нет слов «Ключ» и «Значение».

3. пожалуйста, используйте этот пункт [ключи [i]] = значения [i]; я собираюсь обновить ответ, и это предоставит именно то, что вам нужно