Десериализовать json с помощью Json.NET

У меня есть JSON, который выглядит так (из Philips HUE API):

{
    "1": {"name": "Bedroom"},
    "2": {"name": "Kitchen"}
}

Когда я пытаюсь десериализовать этот документ, у меня возникают проблемы, потому что документ структурирован именно так, как он есть.

Если бы он был отформатирован так:

[
   {"nr": "1", "name": "Bedroom"},
   {"nr": "2", "name": "Kitchen"}
]

Все было бы хорошо. Теперь я вынужден выполнять синтаксический анализ строки, чтобы извлечь данные... :-(

Любые идеи или предложения?


person MrThornell    schedule 13.05.2013    source источник


Ответы (1)


Я бы десериализовал в JObject и использовал как Dictionary

var jObj = (JObject)JsonConvert.DeserializeObject(json);
Console.WriteLine(jObj["1"]["name"]);

or

dynamic jObj = JsonConvert.DeserializeObject(json);
Console.WriteLine(jObj["1"].name);
person I4V    schedule 13.05.2013
comment
Спасибо! Я буду работать с динамическим подходом и посмотрю, что я могу с ним сделать. - person MrThornell; 13.05.2013