#javascript #node.js #jsonpath
Вопрос:
JSON
{
"customer":{
"address":{
"stateRegion":"",
"stateRegionCode":""
}
}
}
Код
"address.state_code": "$.customer.address.[stateRegion ? stateRegion: stateRegionCode?stateRegionCode: null]",
Здесь , в приведенном выше выражении , я хочу stateRegion
в качестве значения , если оно присутствует в клиенте как родительский объект и адрес как дочерний объект, иначе я хочу stateRegionCode
, и если оба они отсутствуют, я хочу null
, как мы можем настроить эту вещь с помощью jsonpath-plus?
Ответ №1:
Вы не можете сделать это во время первоначального создания объекта, поскольку для доступа к свойствам объекта (для использования в вашем условном выражении) требуется, чтобы объект уже существовал.
Возможно, самое близкое, что вы можете сделать, — это, как только вы определили объект, написать что-то похожее на ваш "address.state_code": "$.customer.address.[stateRegion ? stateRegion: stateRegionCode?stateRegionCode: null]"
:
const
$ = { "customer" : { "address" : { "stateRegion" : "", "stateRegionCode" : "" } } },
{stateRegion, stateRegionCode} = $.customer.address; // Destructures address
$.customer.address.state_code = stateRegion
? stateRegion
: stateRegionCode
? stateRegionCode
: null;
console.log($.customer.address);
Комментарии:
1. Спасибо за ваш ответ , но мой вопрос был чем-то другим , я задавал в синтаксисе json-path plus, можем ли мы использовать тернарный оператор для нескольких условий if else?
2. Ладно, конечно. Я добавил тег jsonpath к вопросу для ясности.