Windows phone 7 如何在WP7中解析Json webService响应

Windows phone 7 如何在WP7中解析Json webService响应,windows-phone-7,datacontractserializer,Windows Phone 7,Datacontractserializer,我想在列表框中显示数据,而不使用任何DLL。我的Web服务以json格式响应 我的Web服务响应如下。它有800多条记录 [ { "st_id":"1", "st_name":"name xyz" }, { "st_id":"2", "st_name":"name ABC" }, { "st_id":"3", "st_name":"name HIJK" }, { "st_id":"4", "st_name":"name O

我想在列表框中显示数据,而不使用任何DLL。我的Web服务以json格式响应

我的Web服务响应如下。它有800多条记录

[
    {
    "st_id":"1",
        "st_name":"name xyz"
    },
{

  "st_id":"2",
   "st_name":"name ABC"
},
{

  "st_id":"3",
   "st_name":"name HIJK"
},
{
  "st_id":"4",
   "st_name":"name OPQ"
},
]
我的数据分类如下

[DataContract]
public class Student
{
    [DataMember=("st_id")]
    public bool st_id { get; set; }
    [DataMember=("st_name")]
    public string st_name { get; set; }

}
我正在尝试使用DataContractJsonSerializer序列化对象,并在流中获取WS-response。但我无法序列化。建议链接或json序列化和反序列化的基本教程

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student));
Student stuser = (Student)stdserialize.ReadObject(responseStream);
因此,请帮助我们解析json响应并建议datacontract的链接,以及提供基础知识的所有链接。

谢谢,

您将st_id声明为
bool
,但是您尝试反序列化的数据类型是字符串(可以转换为数字,而不是布尔值)。尝试将其声明为
string
,它应该可以工作

此外,响应是一个对象数组,因此您应该使用的类型是
Student[]

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student[]));
Student stuser = (Student[])stdserialize.ReadObject(responseStream);

为什么指定“不使用任何DLL”?我会使用Json.NET,它在WP7中工作得很好……但在我尝试为Json.NET添加引用时,它不是diplaying我还使用System.Json尝试了名称空间;Json.NET不使用这个名称空间。。。您必须首先从json.codeplex.com下载它…好的,thnks jon实际上我是jst,当我从这个URL读取时,我试图使用这个名称空间。bt我如何阅读上面代码的响应。请阅读上的文档。非常好。(见鬼,DataContractJsonSerializer完全有可能适合您——您还没有说尝试后会发生什么。)