Преобразовать словарь<строка, Словарь> в другой список>< Словарь>

#c# #json

Вопрос:

 I have a JSON like below generatted by some external API 
    {
        "0": {
            "0": "Qty",
            "1": "Code",
            "2": "Description",
            "3": "Unit",
            "4": "Net"
        },
        "1": {
            "0": "24",
            "1": "42097805",
            "2": "R Ball -G   - Red",
            "3": "8.85",
            "4": "212.40"
        },
        "2": {
            "0": "5",
            "1": "32037405",
            "2": "K Ball -G - Blue",
            "3": "8.85",
            "4": "212.40"
        },
        "3": {
            "0": "12",
            "1": "22192825",
            "2": "X Ball -G",
            "3": "8.85",
            "4": "212.40"
        }
        
    }
 

Но при выполнении десериализации объекта значения индекса отображаются неправильно , так как строки являются динамическими по своей природе [«0″ ,»1»,….и т. д

Из комментариев с помощью словаря<строка, Словарь<строка, строка><строка, строка>> помогает завершить десериализацию объекта

Чтобы представить их визуально, мне нужно преобразовать в другую модель, которая выглядит следующим образом: Список<Словарь<строка, строка><строка, строка>>

     =>
    
     
        {
            "0": "Qty",
            "1": "Code",
            "2": "Description",
            "3": "Unit",
            "4": "Net"
        },
        {
            "0": "24",
            "1": "42097805",
            "2": "R Ball -G   - Red",
            "3": "8.85",
            "4": "212.40"
        },
        {
            "0": "5",
            "1": "32037405",
            "2": "K Ball -G - Blue",
            "3": "8.85",
            "4": "212.40"
        },
        {
            "0": "12",
            "1": "22192825",
            "2": "X Ball -G",
            "3": "8.85",
            "4": "212.40"
        }
     
    
 

Могу ли я преобразовать словарь<строка, Словарь<строка, строка><строка, строка>> в список<строка, строка>><Словарь<строка, строка><строка, строка>> без зацикливания

Комментарии:

1. десериализуется в Dictionary<int, Dictionary<int, string>>

Ответ №1:

Если вы используете System.Text.Json или Json.Net обрабатываете json, вы можете десериализовать такую динамическую структуру во вложенные словари ( Dictionary<string, Dictionary<string, string>> ). Для exmaple для последнего это будет выглядеть так:

 string json = ....
var deserializeObject = 
    JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(json);
 

Комментарии:

1. Десериализация будет работать с этим. Как насчет преобразования элементов словаря в список словарей без зацикливания? Можем ли мы сделать это с помощью LINQ

2. @Себастьян, не могли бы вы, пожалуйста, объяснить, что нужно немного подробнее?

3. Отредактировано далее, и, надеюсь, это объясняет необходимость

4. @Sebastian TBH это отдельный вопрос, но в целом это должно быть так же просто, как и deserializeObject.Values.ToList()