JSON.NET通过转换JSON数组到ExpandoObject

4
我采用以下方法将大部分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个回答

8

在反序列化时,请使用List<ExpandoObject>

var expConverter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<List<ExpandoObject>>(json, expConverter);

您的obj变量将是可迭代的expando对象列表。

expConverter是什么?它有什么作用? - L.B
这是 ExpandoObjectConverter。我在回答时错过了它。现在已经编辑好了。 - Ilija Dimov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接