我有一个这样的课程
public class RootObject
{
public List<Award> award { get; set; }
}
public class Award
{
public string name { get; set; }
public string year { get; set; }
}
"[{\"name\":\"Student of the month\",\"year\":\"2017-01-01\"},
{\"name\":\"National Hero\",\"year\":\"2017-01-01\"}]"
我像这样反序列化
var awardList = JsonConvert.DeserializeObject<RootObject>(award)
foreach (var item in awardList.award)
{
Profile.Awards.Add(item);
}
无法将当前JSON数组(例如[1,2,3])反序列化为类型。这段代码有什么问题?
答案 0 :(得分:1)
根据提供的JSON,您将反序列化为错误的类型。提供的JSON只是根本上的奖项集合。
反序列化... ...
var awardList = JsonConvert.DeserializeObject<Award[]>(award);
foreach (var item in awardList) {
Profile.Awards.Add(item);
}
JSON必须如下所示才能与提供的原始代码相匹配
{
"award": [
{"name":"Student of the month","year":"2017-01-01"},
{"name":"National Hero","year":"2017-01-01"}
]
}
答案 1 :(得分:0)
您提到的Json奖励字符串与RootObject类结构不匹配。
RootObject的序列化字符串应该是这样的
{"award":[{"name":"Student of the month","year":"2017"},{"name":"National Hero",
&#34;一年&#34;:&#34; 2017&#34;}]}