如何通过 Jayway JsonPath 将 json 与嵌套列表展平?
How to flatten a json with nested lists by 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 的解决方案,或者对其他工具有任何建议,请告诉我。
感谢您的帮助!
您可以使用 JsonPath 从 JSON 投影结果。例如:
$['data'][*]['orderNo']
returns:
["CG8310150","CG8310151"]
$['data'][*]['details'][*]['skuId', 'amount']
returns:
[{"skuId":4384,"amount":2},{"skuId":4632,"amount":5},{"skuId":4384,"amount":3}]
但是你不能将这两个表达式合并一次通过 JsonPath 所以你不能使用 JsonPath 来 return 你的目标输出。
目前我需要根据配置而不是硬代码处理一些 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 的解决方案,或者对其他工具有任何建议,请告诉我。
感谢您的帮助!
您可以使用 JsonPath 从 JSON 投影结果。例如:
$['data'][*]['orderNo']
returns:["CG8310150","CG8310151"]
$['data'][*]['details'][*]['skuId', 'amount']
returns:[{"skuId":4384,"amount":2},{"skuId":4632,"amount":5},{"skuId":4384,"amount":3}]
但是你不能将这两个表达式合并一次通过 JsonPath 所以你不能使用 JsonPath 来 return 你的目标输出。