如何在WP7中解析Json Web服务响应

时间:2012-04-11 06:14:08

标签: windows-phone-7 datacontractserializer

我想在不使用任何DLL的情况下在Listbox中显示数据。我的webservice以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&我在Stream.But得到WS响应我无法序列化。建立了json的Serilize和Deserilize的链接或基本教程

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

所以请帮助json响应解析&建议数据合同的链接以及所有从基础知识中提供知识的链接 谢谢,

1 个答案:

答案 0 :(得分:0)

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

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

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