你如何转义jsonpath中的@符号?
How do you escape the @ symbol in jsonpath?
给定这样一个 json 列表:
{
"listRel:customFieldList": {
"platformCore:customField": [
{
"@internalId": "801",
"scriptId": "custentity_admin_contact_cweb",
"@xsi:type": "platformCore:BooleanCustomFieldRef",
"platformCore:value": "false"
},
{
"@internalId": "712",
"@scriptId": "custentity_bar_number",
"@xsi:type": "platformCore:StringCustomFieldRef",
"platformCore:value": "166493"
},
{
"@internalId": "798",
"@scriptId": "custentity_contact_type",
"@xsi:type": "platformCore:SelectCustomFieldRef",
"platformCore:value": {
"@internalId": "1",
"@typeId": "148",
"platformCore:name": "Attorney"
}
}
]
}
}
如何select "custentity_bar_number" 中的值? 166493?
这会让您到达那里,但前提是您删除 JSON 中 @scriptId 前面的 @ 符号。
$..['platformCore:customField'][?(@['scriptId'] == 'custentity_bar_number')]
所以我需要的是一种方法来转义 json 中的 @ 符号,并实现类似这样的工作:
$..['platformCore:customField'][?(@['@scriptId'] == 'custentity_bar_number')]
我正在使用 http://jsonpath.com/ 来尝试完成这项工作。
您显然需要使用十六进制代码(我认为这与表达式的解析方式有关)
$..['platformCore:customField'][?(@['\x40scriptId'] == 'custentity_bar_number')]
给定这样一个 json 列表:
{
"listRel:customFieldList": {
"platformCore:customField": [
{
"@internalId": "801",
"scriptId": "custentity_admin_contact_cweb",
"@xsi:type": "platformCore:BooleanCustomFieldRef",
"platformCore:value": "false"
},
{
"@internalId": "712",
"@scriptId": "custentity_bar_number",
"@xsi:type": "platformCore:StringCustomFieldRef",
"platformCore:value": "166493"
},
{
"@internalId": "798",
"@scriptId": "custentity_contact_type",
"@xsi:type": "platformCore:SelectCustomFieldRef",
"platformCore:value": {
"@internalId": "1",
"@typeId": "148",
"platformCore:name": "Attorney"
}
}
]
}
}
如何select "custentity_bar_number" 中的值? 166493?
这会让您到达那里,但前提是您删除 JSON 中 @scriptId 前面的 @ 符号。
$..['platformCore:customField'][?(@['scriptId'] == 'custentity_bar_number')]
所以我需要的是一种方法来转义 json 中的 @ 符号,并实现类似这样的工作:
$..['platformCore:customField'][?(@['@scriptId'] == 'custentity_bar_number')]
我正在使用 http://jsonpath.com/ 来尝试完成这项工作。
您显然需要使用十六进制代码(我认为这与表达式的解析方式有关)
$..['platformCore:customField'][?(@['\x40scriptId'] == 'custentity_bar_number')]