Я пытаюсь работать с некоторыми форматированными json-данными на С#, но у меня есть некоторые проблемы, определяющие правильный способ подхода к проблеме. Моя проблема в том, что форматированные данные json будут в неизвестном формате (я знаю, что звучит странно... читайте дальше). В основном, json-форматированные данные будут представлять собой набор пар имен/значений, в которых значения могут быть или не быть массивами вложенных пар имя/значение. Чтобы сделать вещи более увлекательными, вложенность массивов пар имя/значение может продолжаться до бесконечности.
Например: У меня могут быть некоторые данные, которые выглядят как...
{
"1": {
"1.1": {
"1.1.1": "value1",
"1.1.2": "value2",
"1.1.3": "value3"
},
"1.2": "value4",
"1.3": {
"1.3.1": {
"1.3.1.1": "value5",
"1.3.1.2": "value6"
},
"1.3.1.2": "value7",
"1.3.1.3": "value8"
}
}
}
К сожалению, я не знаю, сколько будет гнездования, и технически я не знаю, какие пары имя/значение будут присутствовать в любом сообщении.
Есть ли какой-либо поддерживаемый механизм в С#, который позволил бы мне легко разобрать его во вложенный набор hastables?
Мне нравится делать что-то по строкам (обратите внимание, что этот код не является на 100% синтаксически правильным и лучше делать через рекурсию... но он переводит идею).
Hashtable ht = [deserialize data method](jsonformattedstring);
foreach (Hashtable nested in ht)
{
If (nested.count > 1)
{
Foreach (hashtable next in nested)
…
}
}