适用于Windows 8应用程序开发环境。
代码:
var deserialized = JsonConvert.DeserializeObject<RootObject>(json);
listView.ItemsSource = deserialized; // error
数据模型:
public class C
{
public List<Y> programs { get; set; }
public string name { get; set; }
public int code { get; set; }
}
public class RootObject
{
public List<C> cs { get; set; }
public string date { get; set; }
}
public class Y
{
public string category { get; set; }
public string time { get; set; }
public string name { get; set; }
}
我该怎么办?我找不到解决方案。
答案 0 :(得分:3)
ItemsSource
正在寻找IEnumerable
,但您在RootObject
中提供了一个对象。如果在代码中创建一个RootObject实例并尝试相同的赋值,则会得到相同的错误。
列表中应该显示什么?如果您只是将代码更改为:
listView.ItemsSource = deserialized.cs;
listView应显示您的C
个对象。
答案 1 :(得分:0)
我总是很难弄清楚如何从串行器输出。我确实有我正在下面粘贴的工作代码(Windows 8商店)。它的作用非常明显。
HttpResponseMessage responseGetEmailByPersonsBare =
await clientGetEmailByPersonsBare.PostAsync(UrlBase + EmailDetailGetEmailByPersonsBare, contentGetEmailByPersonsBare);
Stream myStream = await responseGetEmailByPersonsBare.Content.ReadAsStreamAsync();
var djsGetEmailByPersonsBare = new DataContractJsonSerializer(typeof(AEWebDataStructures.RootObjectEmailDetail));
var rootObjectEmailDetail = (AEWebDataStructures.RootObjectEmailDetail)djsGetEmailByPersonsBare.ReadObject(myStream);
responseGetEmailByPersonsBare.EnsureSuccessStatusCode();
returnTaskInfo.EmailDetails = rootObjectEmailDetail.Data;
returnTaskInfo.StatusReturn = AEWebDataStructures.StatusReturn.Success;