Я новичок в Json.NET и пытаюсь использовать функцию SelectToken.
Мой тестовый JSON:
{
"Root": {
"aNode": {
"bNode": {
"cNode": {
"id": "myID1"
}
},
"cNode": {
"id": "myID2"
},
"dNode": {
"cNode": [
{
"id": "myID3"
},
{
"id": "myID4"
}
]
}
},
"cNode": {
"id": "myID5"
}
}
}
Теперь я пытаюсь использовать следующий код для получения определенных объектов:
JObject obj = JsonConvert.DeserializeObject<JObject>(jsonTxt);
//Not found
var myID1 = obj.SelectToken("..cNode[?(@.id=='myID1')]");
//Not found
var myID2 = obj.SelectToken("..cNode[?(@.id=='myID2')]");
//Found
var myID3 = obj.SelectToken("..cNode[?(@.id=='myID3')]");
//Found
var myID4 = obj.SelectToken("..cNode[?(@.id=='myID4')]");
//Not found
var myID5 = obj.SelectToken("..cNode[?(@.id=='myID5')]");
Почему я получаю эти (для меня) странные результаты?
Я думаю, что я должен получить в каждом случае объект cNode
с определенным идентификатором, а не только myID3
и myID4
. Что здесь не так?