JSON.NET Выбор элементов в массиве с помощью linq

Мне нужно выбрать некоторые значения из ответа json. Я использую json.net, хорошо с более простыми вещами, но, похоже, не так много документации/учебников по чему-либо сверх этого. В приведенном ниже примере json мне нужно выбрать все возрасты:

{
"teacherHolder": [{
    "id": 200000001,
    "name": "Mr Test",
    "class": "a4",
    "students": [{
        "id": "100532469",
        "name": "ben"
    },
    {
        "id": "100506025",
        "name": "bill"
    },
    {
        "id": "100000447",
        "name": "bob"
    }]

}]

}

Я пробовал это и другие варианты:

var stuff = response["teacherHolder"].Children()["students"];

var names = from y in stuff.Children().Values()
                    select y["name"];

и это:

var names= response["teacherHolder"]
            .Select(s => (string)s.SelectToken("students[0].name")).ToList();

ответ — это JObject из веб-запроса. Я просто получаю ответ:

[{"Key":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]","Value":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]"}]

Результаты в конечном итоге помещаются в словарь.

Есть идеи, как это сделать? я знаю, что это будет просто, я просто не нашел правильную комбинацию.

10
задан gdp 2 April 2012 в 21:49
поделиться