Отображение названия каждого объекта - PullRequest
0 голосов
/ 09 июля 2019

Я создаю программное обеспечение, где пользователи могут создавать и загружать профили для заполнения текстовых полей. Имена и другая информация, содержащаяся в профиле, хранятся в файле JSON. Имя профиля может содержать любой текст, введенный пользователем. Поэтому для этого я пытаюсь получить имена всех объектов в файле JSON (= каждое имя профиля) для отображения их в виде дерева, но все, что я получаю, это их содержимое.

У меня есть файл JSON, содержащий два объекта:

[
    {
        "profile1": {
            //Some informations 1
        },
        "profile2": {
            //Some informations 2
        }
    }
]

Пока у меня есть код, который позволяет мне получить значение данного тега, но я не могу найти способ получить имя каждого объекта:

using (StreamReader r = File.OpenText(path))
                {
                    string json = r.ReadToEnd();
                    dynamic array = JsonConvert.DeserializeObject(json);
                    foreach (var item in array)
                    {
                        debug_tb.Text += item.profile1; //Gives me each values of the "profile1 object"
                    }

                }

Итак, я пытаюсь отобразить «profile1», «profile2» и «profile3», если он существует.

1 Ответ

1 голос
/ 09 июля 2019

Ваша проблема в том, что ваш JSON - это массив с одним объектом.Таким образом, вы можете сначала упростить JSON:

{
    "profile1": {
        //Some informations 1
    },
    "profile2": {
        //Some informations 2
    }
}

Затем вы можете легко перебирать каждый элемент в JSON и получать Name его

    dynamic array = JsonConvert.DeserializeObject("{ \"profile1\": { }, \"profile2\": { } }");
    foreach (var item in array)
    {
        debug_tb.Text += item.Name; //Gives the name of the object
    }
    Console.WriteLine(text);
    Console.ReadLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...