Chefranov
@Chefranov
Новичок

Как десереализировать json и значение объекта вставить в ComboBox?

Всем привет. Заранее извиняюсь за глупый вопрос, в C# новичок. Имеется json файл такого вида:
{
    "name": "SiO2",
    "h": 906,
    "s": -477,
    "a": 44,
    "b": 67,
    "c": 47
},
{
    "name": "Al2O3",
    "h": 805,
    "s": -155,
    "a": 53,
    "b": 73,
    "c": 62
},
...

Мне необходимо получить значения поля name с каждого объекта и заполнить ими несколько ComboBox. Посмотрев примеры, как я понял необходимо создать класс, вроде такого:
public class CompoundProps
    {
        public string name { set; get; }
        public float h { set; get; }
        public float s { set; get; }
        public float a { set; get; }
        public float b { set; get; }
        public float c { set; get; }
    }

И затем десериализация вроде такого:
using (FileStream fs = new FileStream("db1.json", FileMode.OpenOrCreate))
            {
                CompoundProps props = JsonSerializer.Deserialize<CompoundProps>(fs);
                Console.WriteLine($"Name: {props.name}  H: {props.h} S: {props.s} a: {props.a} b: {props.b} c: {props.c}");
            }

И при такой попытке получаю ошибку:
5eb6d074bfa57612287589.png
До заполнения ComboBox не дошел соответственно...
Подскажите как правильно получить данные с каждого объекта (на примере поля name) и заполнить несколько ComboBox (cb1, cb2, cb3)? Если можно с комментариями по коду ♥
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Ваш код не валидный
[{
		"name": "SiO2",
		"h": 906,
		"s": -477,
		"a": 44,
		"b": 67,
		"c": 47
	},
	{
		"name": "Al2O3",
		"h": 805,
		"s": -155,
		"a": 53,
		"b": 73,
		"c": 62
	}
]


using (FileStream fs = new FileStream("db1.json", FileMode.OpenOrCreate))
            {
                CompoundProps propss = JsonSerializer.Deserialize<CompoundProps[]>(fs.ReadToEnd());
                var props = propss[0];
                Console.WriteLine($"Name: {props.name}  H: {props.h} S: {props.s} a: {props.a} b: {props.b} c: {props.c}");
            }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы