Newtonsoft JSON.Net SelectToken问题

Newtonsoft JSON.Net SelectToken问题,json.net,jsonpath,Json.net,Jsonpath,我有以下查询和示例JSON。 我在“”上试了一下。它按预期工作。 如果在VisualStudio中尝试,则不会返回任何结果 $.Items.Services[?(@.Name == 'Another Service')].Url 以下是JSON: { "Items": { "Resource": { "Id": "12345" }, "Services": { "service1": { "Name": "My

我有以下查询和示例JSON。 我在“”上试了一下。它按预期工作。 如果在VisualStudio中尝试,则不会返回任何结果

$.Items.Services[?(@.Name ==  'Another Service')].Url
以下是JSON:

{
"Items": {
    "Resource": {
        "Id": "12345"
    },
    "Services": {
        "service1": {
            "Name": "My First Service",
            "Type": "WS",
            "Url": "https://server1/service1"
        },
        "service2": {
            "Name": "Another Service",
            "Type": "WS",
            "Url": "https://server2/service2"
        }
    }
}   
}
和示例代码:

JObject obj = JObject.Parse(File.ReadAllText(@"d:\temp\sample.json"));
var matches = obj.SelectTokens("$.Items.Services[?(@.Name ==  'Another Service')].Url");
if(matches != null)
{
    foreach(var item in matches)
    {
       item.Replace(replacement); // this never gets executed
    }
 }
试试这个:

var matches = obj.SelectTokens("$.Items.Services[?(@..Name == 'Another Service')]..Url");

只是为了确认一下,您输入了一个错误,并且调用了正确的方法
。SelectToken
,而不是
。SelectTokens
?不,我是用复数。这不是预期的吗?啊,我意识到lib中也有复数方法。非常感谢。成功了!我只是不知道为什么。但谁在乎,只要它有回报。