你如何在jsonpath中转义@符号?
问题描述:
给定一个JSON名单如下:你如何在jsonpath中转义@符号?
{
"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"
}
}
]
}
}
我如何可以选择 “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')]
哇!做得好!我不知道你可以插入这样的代码,它不在半官方文档中http://goessner.net/articles/JsonPath/index.html#e2 – redwards510