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

mar*_*rto 7 c# json json.net

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

string json = @"{'Name':'Mike'}";
Run Code Online (Sandbox Code Playgroud)

到C#匿名类型:

var definition = new { Name = ""};
var result = JsonConvert.DeserializeAnonymousType(json, definition);
Run Code Online (Sandbox Code Playgroud)

但是当我有一个数组时:

string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
Run Code Online (Sandbox Code Playgroud)

我被困住了。

怎么做到呢?

Mar*_*377 6

解决方案是:

string json = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";

var definition = new[] { new { Name = "" } };

var result = JsonConvert.DeserializeAnonymousType(json, definition);
Run Code Online (Sandbox Code Playgroud)

当然,由于result是数组,您将像这样访问各个记录:

string firstResult = result[0].Name;
Run Code Online (Sandbox Code Playgroud)

您还可以.ToList()在其上调用和类似方法。