[英]How do I deserialize an array of JSON objects to a C# anonymous type?
反序列化单个json对象没有问题
string json = @"{'Name':'Mike'}";
到C#匿名类型:
var definition = new { Name = ""};
var result = JsonConvert.DeserializeAnonymousType(json, definition);
但是当我有一个数组时:
string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
我被卡住了。
怎么做到呢?
解决方案是:
string json = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
var definition = new[] { new { Name = "" } };
var result = JsonConvert.DeserializeAnonymousType(json, definition);
当然,由于result
是一个数组,你可以像这样访问各个记录:
string firstResult = result[0].Name;
你也可以调用.ToList()
和类似的方法。
您可以通过此方式反序列化为动态对象。
dynamic result = JsonConvert.DeserializeObject(jsonArray);
一种方法是在JSON数组字符串中放置一个标识符。
这段代码对我有用:
var typeExample = new { names = new[] { new { Name = "" } } };
string jsonArray = @"{ names: [{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]}";
var result = JsonConvert.DeserializeAnonymousType(jsonArray, typeExample);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.