我有一个通过序列化对象数组创建的json字符串:
[
{
"html": "foo"
},
{
"html": "bar"
}
]
如何将其反序列化为一些可迭代的C#结构?我已经尝试过此代码,但是出现
No parameterless constructor defined for type of 'System.String'.
错误:string[] htmlArr = new JavaScriptSerializer().Deserialize<String[]>(html);
我想要接收的是一个可迭代的结构来获取每个“html”对象。
最佳答案
为每个JSON对象使用一个类。例子:
public class HtmlItem
{
[DataMember(Name = "html")]
public string Html { get; set; }
}
JavaScriptSerializer ser = new JavaScriptSerializer();
// Serialize
string html = ser.Serialize(new List<HtmlItem> {
new HtmlItem { Html = "foo" },
new HtmlItem { Html = "bar" }
});
// Deserialize and print the html items.
List<HtmlItem> htmlList = ser.Deserialize<List<HtmlItem>>(html);
htmlList.ForEach((item) => Console.WriteLine(item.Html)); // foo bar