如何将JSON对象数组反序列化为C#匿名类型?

如何将JSON对象数组反序列化为C#匿名类型?,c#,json,json.net,C#,Json,Json.net,反序列化单个json对象没有问题 string json = @"{'Name':'Mike'}"; 对于C#匿名类型: var definition = new { Name = ""}; var result = JsonConvert.DeserializeAnonymousType(json, definition); 但当我有一个数组时: string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor

反序列化单个json对象没有问题

string json = @"{'Name':'Mike'}";
对于C#匿名类型:

var definition = new { Name = ""};
var result = JsonConvert.DeserializeAnonymousType(json, definition);
但当我有一个数组时:

string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
我被卡住了


如何实现此操作?

您可以通过此操作反序列化到动态对象

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);
解决办法是:

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()
和类似的方法。

或类似的var result2=Newtonsoft.Json.JsonConvert.DeserializeObject(jsonArray);-您可以像result2[0]一样访问它。Name您可以像匿名数组一样反序列化它:
var result=JsonConvert.DeserializeAnonymousType(jsonArray,new[]{new{Name=”“})