Я пытаюсь работать с некоторыми данными, отформатированными в json, в C #, но у меня возникают некоторые проблемы с определением правильного способа решения этой проблемы. Моя проблема в том, что данные в формате 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"
}
}
}
К сожалению, я не знаю, сколько будет происходить вложение, и технически я не знаю, какие пары имя / значение будут присутствовать в любом данном сообщении.
Существует ли какой-либо поддерживаемый механизм в C #, который позволил бы мне легко разобрать это во вложенный набор hastables?
Я хотел бы сделать что-то вроде (обратите внимание, что этот код синтаксически не на 100% корректен, и его лучше сделать с помощью рекурсии ... но идея понятна).
Hashtable ht = [deserialize data method](jsonformattedstring);
foreach (Hashtable nested in ht)
{
If (nested.count > 1)
{
Foreach (hashtable next in nested)
…
}
}