-1

我想在不使用任何 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 序列化对象 & m 在 Stream 中获取 WS 响应。但我无法序列化。建议链接或基本教程用于 json 的 Serilize 和 Deserilize

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

因此,请帮助进行 json 响应解析并建议 datacontract 的链接以及所有提供基础知识的链接。
谢谢,

4

1 回答 1

0

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

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

DataContractJsonSerializer stdserialize = 
    new DataContractJsonSerializer(typeof(Student[]));
Student stuser = (Student[])stdserialize.ReadObject(responseStream);
于 2012-04-13T23:43:32.047 回答