适用于 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; }
}
我能做什么?我找不到解决方案。
ItemsSource
正在寻找一个IEnumerable
,但你在RootObject
中提供了一个对象。如果在代码中创建 RootObject 实例之一并尝试相同的分配,则会收到相同的错误。
列表中具体应该显示什么? 如果您只是将代码更改为:
listView.ItemsSource = deserialized.cs;
列表视图应显示C
对象。
我总是很难弄清楚如何从序列化程序输出中前进。 我确实有工作代码(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;