У меня есть 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
}
...
]
И я пытаюсь прочитать все объекты через Newtonsoft. Json
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; }
}
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("Thermo.db1.json");
using (var reader = new System.IO.StreamReader(stream))
{
string data = reader.ReadToEnd();
CompoundProps props = JsonConvert.DeserializeObject<CompoundProps>(data);
Console.WriteLine(props.name);
}
Но у меня ошибка:
"Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'Thermo.CompoundProps', потому что для этого типа требуется объект JSON (например, {" name ":" value "} ) для правильной десериализации. Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции ( например ICollection, IList), например List, который может быть десериализован из массива JSON. JsonArrayAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из массива JSON.
Где неверно код?