Я конвертирую из Newtonsoft. Json в System.Text. Json, и я столкнулся с данными, которые выглядят так:
...
"people": {
"ID001": {
"id": "ID001",
"surame": "Smith",
"given": "Joe"
},
"ID002": {
"id": "ID002",
"surame": "Brown",
"given": "George"
}
},
...
Есть дополнительный, ненужный уровень в там "ID001", "ID002" и т. д. c.
Поскольку данные на самом деле находятся в месте, которое должно быть меткой, я застрял, пытаясь понять, как их отобразить, поскольку "метка" разные для каждой записи.
(я также отмечу, что я не могу контролировать источник данных; изменять его нельзя)
С Newtonsoft я бы прочитал весь «Люди» структура в объект Perople_Raw, когда при синтаксическом анализе с использованием Dynami c я бы сериализовал отдельный элемент, убрал бы значение "IDxxx" и затем повторно проанализировал результат.
dynamic peopleArray = this.OverallDataObject.People_Raw
foreach (dynamic peopleItem in peopleArray) {
string serialized = JsonConvert.SerializeObject(playerBio_raw);
int posOpenBrace = serialized.IndexOf('{');
Person person = JsonConvert.DeserializeObject<Person>(serialized.Substring(posOpenBrace));
this.OverallDataObject.People.Add(person);
}
System.Text. Json не поддерживает такой вид дурачества, однако, как можно указать отображение, чтобы оно получило массив объектов Person? Через какой-то промежуточный объект, который содержит внешний идентификатор плюс объект Person?