我有以下JSON对象
{"id":"15", "value":1}
我想提取值1,当且仅当id==15。
我尝试过的最相关的表达是
$?(@.id=="15").value
但它似乎不起作用,我只是找不到对手。
我在C#中使用json.net。
您必须了解什么是jsonPath。使用jsonPath从一个唯一的属性中提取内容是不可能的。这要容易得多
var jObj=JObject.Parse(json);
int? value = jObj["id"].ToString() == "15" ? (int)jObj["value"] : null; //1
json路径只适用于集合,所以将对象移动到数组中
var json = "[{"id":"15", "value":1}]";
var jArr = JArray.Parse(json);
int id= (int) jArr.SelectToken("$[?(@.id=='15')].value"); //1
//or
int id = (int) jArr.SelectToken("$[?(@.id=='15')]")["value"]; //1