[英]Jayway JsonPath query to get required json format
我需要从输入 json 中提取所需格式的 json。 我正在使用 jayway json 路径库。 如何实现?
输入JSON:
{
"ccid": [
{
"id": 13,
"src": {
"sname": "XA-SXXD",
"lname": "John",
"identifier": 2,
"StatusCode": "C"
}
},
{
"id": 14,
"src": {
"sname": "XB-SXXD",
"lname": "Cena",
"identifier": 3,
"StatusCode": "C",
}
}
]
}
所需格式:
[ { "id": "13", "sources": { "sname": "XA-SXXD", "lname": "John", "identifier": 2 } }, { "id": "14", "sources": { "sname": "XB-SXXD", "lname": "Cena", "identifier": 3 } }]
我使用的查询:
$.ccid[*].src[?(@.identifier!=null)].['identifier','sname']
我得到的输出:
[
{
"identifier" : 2,
"sname" : "XA-SXXD"
},
{
"identifier" : 3,
"sname" : "XB-SXXD"
}
]
请帮助我修改我的查询以获得所需的格式。 所需格式的字符串“sources”可以硬编码。
我想我设法解决了这个问题:)
$.ccid[*].[?(@.src.identifier!=null)].['id', 'src']
试一试。
输入测试:
{
"ccid": [
{
"id": 13,
"src": {
"sname": "XA-SXXD",
"lname": "John",
"StatusCode": "C"
}
},
{
"id": 14,
"src": {
"sname": "XB-SXXD",
"lname": "Cena",
"identifier": null,
"StatusCode": "C",
}
}
]
}
收到的输出:
[
{
"id" : 13,
"src" : {
"sname" : "XA-SXXD",
"lname" : "John",
"StatusCode" : "C"
}
}
]
唯一的问题是如果标识符标签不可用,它基本上被视为非空。 因此我们得到 13 作为输出。 但是,如果 value 显式为 null,则没问题。 所以还需要加强一点。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.