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 Переменная будет списком объектов расширения, которые вы можете перебирать.

Другие вопросы по тегам