[英]How do I deserialize an array of JSON objects to a C# anonymous type?
I have no problem deserializing a single json object 反序列化单个json对象没有问题
string json = @"{'Name':'Mike'}";
to a C# anonymous type: 到C#匿名类型:
var definition = new { Name = ""};
var result = JsonConvert.DeserializeAnonymousType(json, definition);
But when I have an array: 但是当我有一个数组时:
string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
I am stuck. 我被卡住了。
How can it be done? 怎么做到呢?
The solution is: 解决方案是:
string json = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
var definition = new[] { new { Name = "" } };
var result = JsonConvert.DeserializeAnonymousType(json, definition);
Of course, since result
is an array, you'll access individual records like so: 当然,由于
result
是一个数组,你可以像这样访问各个记录:
string firstResult = result[0].Name;
You can also call .ToList()
and similar methods on it. 你也可以调用
.ToList()
和类似的方法。
您可以通过此方式反序列化为动态对象。
dynamic result = JsonConvert.DeserializeObject(jsonArray);
One approach is to put an identifier in your JSON array string. 一种方法是在JSON数组字符串中放置一个标识符。
This code worked for me: 这段代码对我有用:
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.