如何将JSON对象数组反序列化为C#匿名类型?
反序列化单个json对象没有问题如何将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
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=”“})代码>