Запрос пути Json в JObject.SelectTokens в Json.net не возвращает результаты - PullRequest
0 голосов
/ 07 июня 2018

У меня есть такой json

{
  "Attributes": [
    {
      "Name": "attr1",
      "Value": "abcd"
    },
    {
      "Name": "attr2",
      "Value": "abcde"
    },
    {
      "Name": "attr3",
      "Value": "abcdef"
    }
  ],
  "SomeObject": {
    "Attributes": [
      {
        "Name": "attr1",
        "Value": "xyz"
      },
      {
        "Name": "attr2",
        "Value": "xyza"
      },
      {
        "Name": "attr3",
        "Value": "wxyxz"
      }
    ]
  }
}

Я реализую общий код.Каждый раз структура объекта может измениться, но структура атрибутов останется прежней.Я хочу найти все атрибуты, сопоставляя их имена, такие как Name == "attr1".Я читал о JsonPath.Я использую библиотеку Json.net (Newtonsoft) для манипуляций с json.Я пришел через это -> JObject.SelectTokens(jsonPath).Я создал один запрос пути json как $.[?(@.Name=='attr1')] и протестировал на http://jsonpath.com/.Он работает правильно, но в коде C # он дает мне нулевые результаты.Может кто-нибудь предложить мне решение, ваша помощь оценена!

1 Ответ

0 голосов
/ 07 июня 2018

Используйте этот JsonPath, просто добавив дополнительную точку после $

$..[?(@.Name=='attr1')]
...