问题
I am using the following approach to convert most of my API JSON results into an object:
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...
}
However, I run into a strange situation with this format of JSON...
[
{
"id": 42,
"name": "example name",
"member_count": 42,
"created_date": "example created_date",
"last_update": "example last_update",
"last_reset": "example last_reset"
}
]
Because it is an array, how can I access the items, the ExpandoObject is supposed to be an IDictionary of sorts.
Anyone had experience with this?
回答1:
Use List<ExpandoObject>
when deserializing:
var expConverter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<List<ExpandoObject>>(json, expConverter);
Your obj
variable will be list of expando objects that you can iterate.
来源:https://stackoverflow.com/questions/22464751/json-array-to-expandoobject-via-json-net