我有一个格式正确的json,如下所示:
{
"Slide":[
{
"Code": "'!!!",
"Status": "OK"
},
{
"Code": "123",
"Status": "Failed"
}
]
}
我使用json路径基于Status
过滤Code
。
Jsonpath就像这样:C#中的..[?(@.Code == '{0}')].Status
。
因此,以编程方式填充jpath中的参数。
当值“'!!!”传递到jpath(即..[?(@.Code == ''!!!')].Status
)之上,它将不起作用,因为单引号不会被转义。因为我不是参数值的硬编码,所以我无法手动对其进行转义。
即..[?(@.Code == '\'!!!')].Status
将解决问题。但是我需要以编程方式实现它。
解决此问题的一种方法是使用正则表达式并识别模式,然后在将参数传递给jpath之前对其进行转义。我对regex不太满意,无法编写替换时会保持jpath的开始和结束引用完整的内容。谁能帮忙。
还是有更好的方法?。
P.s:我无法使用jpath的正则表达式功能,因为我需要按特定的代码进行过滤。