注意:我曾经发布过一个类似的问题,那个问题是这个问题的前身,因为我最初想使用JSON.NET解析JSON,但现在我正在使用内置反序列化器,所以这是一个不同的问题。
这就是我的目标:我有一个名为Item的类。JSON有许多“元素”(如果它们被称为这样-它们模仿了Item类),每个元素包含3个字段:一个名为id的整数,一个名为name的字符串和一个名为creationTime的日期时间。我想将所有这些Item“元素”从JSON解析成Item对象的列表。我已经在Item类中创建了3个字段来匹配JSON。
这是我目前正在做的事情:
然而,这并不起作用,因为我“无法将类型'superapi.Item'隐式转换为'System.Collections.Generic.List
这是我的Item类的样子:
这就是我的目标:我有一个名为Item的类。JSON有许多“元素”(如果它们被称为这样-它们模仿了Item类),每个元素包含3个字段:一个名为id的整数,一个名为name的字符串和一个名为creationTime的日期时间。我想将所有这些Item“元素”从JSON解析成Item对象的列表。我已经在Item类中创建了3个字段来匹配JSON。
这是我目前正在做的事情:
JavaScriptSerializer ser = new JavaScriptSerializer();
List<Item> items = ser.Deserialize<Item>(new StreamReader(response.GetResponseStream()).ReadToEnd());
然而,这并不起作用,因为我“无法将类型'superapi.Item'隐式转换为'System.Collections.Generic.List
<superapi.Item
>'”。因此,我不知道如何解决这个问题,因为JSON中有许多Item架构的元素。在foreach循环中是否有可能做到这一点,以查找JSON中的每个反序列化Item,将其添加到列表中并继续循环?我将尝试使用类似的代码来做到这一点,并发布我的结果。
谢谢!
更新:这是JSON的部分内容:
[{
"Id": 1,
"Name": "First item name",
"creationTime": "\/Date(1247258293690)\/"
},
{
"Id": 2,
"Name": "Second item name",
"creationTime": "\/Date(1247088323430)\/"
}]
这是我的Item类的样子:
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime creationTime { get; set; }
}