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