2015-06-18 2 views
1

в HTML, мы можем перемещаться с использованием XPath.JSON XPATH навигация в .NET

Есть ли библиотека для JSON, которая использует ту же идею? Это не nocessary называть его «XPath», потому что это для HTML ..

, например, у нас есть этот JSON данные

{ 
    "glossary": { 
     "title": "example glossary", 
     "GlossDiv": { 
      "title": "S", 
      "GlossList": { 
       "GlossEntry": { 
        "ID": "SGML", 
        "SortAs": "SGML", 
        "GlossTerm": "Standard Generalized Markup Language", 
        "Acronym": "SGML", 
        "Abbrev": "ISO 8879:1986", 
        "GlossDef": { 
         "para": "A meta-markup language, used to create markup languages such as DocBook.", 
         "GlossSeeAlso": ["GML", "XML"] 
        }, 
        "GlossSee": "markup" 
       } 
      } 
     } 
    } 
} 

тогда, если мы хотим, чтобы получить идентификатор первого вхождения GlossEntry, то мы могли бы просто перейдите к чему-то вроде этого: // GlossList/GlossEntry [0], и результат будет иметь объект с списком узлов в GlossEntry.

Я нашел JsonPath, но она была написана для JS и PHP http://goessner.net/articles/JsonPath/

+0

Взгляните на XPath 3.1 и/или JSONiq. –

ответ

0

Джеймс Ньютон-короля Json.NET поддерживает синтаксис запроса JSONPath Stefan Госснер начиная с его версии 6.0 выпуска 1.

См:

http://james.newtonking.com/archive/2014/02/01/json-net-6-0-release-1-%E2%80%93-jsonpath-and-f-support

Я также добавил поддержку JSONPath моему собственному парсеру/десериализатору в начале этого года.

См:

https://github.com/ysharplanguage/FastJsonParser#JSONPath

Вот несколько примеров:

https://github.com/ysharplanguage/FastJsonParser/blob/master/JsonTest/ParserTests.cs#L343

«Надеюсь, что это помогает,