JSON массив для ExpandoObject через JSON.NET
Я использую следующий подход для преобразования большей части моих результатов API JSON в объект:
public void ExpandoObject()
{
var sampleDATA = Sample.Create();
var json = JsonConvert.SerializeObject(sampleDATA);
var expConverter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json, expConverter);
var a = obj.A;
var b = obj.B;
var c = obj.C; //and so on...
}
Тем не менее, я сталкиваюсь с странной ситуацией с этим форматом JSON...
[
{
"id": 42,
"name": "example name",
"member_count": 42,
"created_date": "example created_date",
"last_update": "example last_update",
"last_reset": "example last_reset"
}
]
Поскольку это массив, как я могу получить доступ к элементам, ExpandoObject должен быть своего рода IDictionary.
У кого-нибудь был опыт с этим?
1 ответ
Решение
Использование List<ExpandoObject>
при десериализации:
var expConverter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<List<ExpandoObject>>(json, expConverter);
Ваш obj
Переменная будет списком объектов расширения, которые вы можете перебирать.