Java 如何通过Jayway JsonPath使用嵌套列表展平json?
目前,我需要根据配置处理一些json结果,但不需要硬代码 例如,使用json,如下所示Java 如何通过Jayway JsonPath使用嵌套列表展平json?,java,json,jsonpath,jayway,Java,Json,Jsonpath,Jayway,目前,我需要根据配置处理一些json结果,但不需要硬代码 例如,使用json,如下所示 { data: [{ orderNo: "CG8310150", details: [{ skuId: 4384, amount: 2 }, { skuId: 4632, amount: 5 }] }, { orderN
{
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
}]
我希望结果如下
{
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']
["CG8310150","CG8310151"]
[{"skuId":4384,"amount":2},{"skuId":4632,"amount":5},{"skuId":4384,"amount":3}]
返回:$['data'][*]['details'][*]['skuId','amount']
["CG8310150","CG8310151"]
[{"skuId":4384,"amount":2},{"skuId":4632,"amount":5},{"skuId":4384,"amount":3}]
但是您不能在一次通过JsonPath的过程中组合这两个表达式,因此您不能使用JsonPath返回目标输出。非常感谢您让我知道,使用JsonPath配置来实现项目+展平结果是不可用的。我将选择其他解决方案,例如使用一段groovy代码作为配置@glytchingA您的答案的很大一部分是描述如何用硬代码的方式实现项目+扁平化操作,这显然不是我在问题中所追求的。我认为指出JsonPath的局限性就足够了。因此,请编辑您的答案,并删除与我的问题描述不符的部分,以避免他人误解,然后我将乐意接受您的答案。再次感谢你@格利钦