Как извлечь несуществующий реквизит в виде пустой или пустой строки из массива JSON, используя путь JSON - PullRequest
1 голос
/ 23 сентября 2019

У меня есть Json, как это ниже

{
    'orderList': [
        {
            'productId': 'AAA',
        },
        {
            'productId': 'BBB',
        }
    ]
}

Строка JSON действительна, когда все элементы в orderList имеют непустую productId проп, я пытаюсь использовать JsonPath для проверки, сейчасУ меня проблема.$.orderList[*]['productId'] может извлекать все productIds из orderList в виде массива String, например ['AAA', 'BBB'], что позволяет мне проверить, что все элементы не пустые, но когда productId prop не существует, как показано ниже

{
    'orderList': [
        {
            'productId': 'AAA',
        },
        {
        }
    ]
}

Путь JSON

$.orderList[*]['productId']

получает массив как ['AAA'] (не ['AAA', null] или ['AAA', '']), поэтому он может передавать мои функции проверки.Как это сделать правильно?

1 Ответ

1 голос
/ 23 сентября 2019

Вот как работает jsonpath.Если он не обнаружил это свойство в объекте, он игнорирует его в массиве результатов вместо добавления значений null или undefined.Таким образом, если вы хотите получить null в массиве результатов, вам нужно добавить это свойство с null в качестве значения.

{
    "orderList": [
        {
            "productId": "AAA"
        },
        {
            "productId": null
        }
    ]
}

приведет к

[
  "AAA",
  null
]
...