簡體   English   中英

如何將JSON對象數組反序列化為C#匿名類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM