gpt4 book ai didi

java - Jayway JsonPath查询获取所需的json格式

转载 作者:行者123 更新时间:2023-12-01 18:31:48 24 4
gpt4 key购买 nike

我需要从输入 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 那就没问题了。因此需要进一步增强。

希望这有帮助。

关于java - Jayway JsonPath查询获取所需的json格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60151618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com