Как сгладить JSON с помощью вложенных списков по Jayway JsonPath?
В настоящее время мне нужно обработать некоторые результаты JSON на основе конфигурации, но не жесткий код.
Например, с JSON следующим образом
{
data: [{
orderNo: "CG8310150",
details: [{
skuId: 4384,
amount: 2
}, {
skuId: 4632,
amount: 5
}]
}, {
orderNo: "CG8310151",
details: [{
skuId: 4384,
amount: 3
}]
}]
}
Я хочу, чтобы результат был следующим
[{
orderNo: "CG8310150",
skuId: 4384,
amount: 2
}, {
orderNo: "CG8310150",
skuId: 4632,
amount: 5
}, {
orderNo: "CG8310151",
skuId: 4384,
amount: 3
}]
Если у кого-то есть решение с Jayway JsonPath, или есть какие-либо предложения относительно других инструментов, пожалуйста, сообщите мне об этом.
Спасибо за вашу помощь!
1 ответ
Решение
Вы можете проецировать результаты из этого JSON, используя JsonPath. Например:
$['data'][*]['orderNo']
возвращает:["CG8310150","CG8310151"]
$['data'][*]['details'][*]['skuId', 'amount']
возвращает:[{"skuId":4384,"amount":2},{"skuId":4632,"amount":5},{"skuId":4384,"amount":3}]
Но вы не можете объединить оба этих выражения за один проход через JsonPath, поэтому вы не можете использовать JsonPath для возврата целевого вывода.