{"hasnew":0,
"curver":1.5,
"disable":1,
"update":"http://abc.abc.net/download/abc.zip",
"servers":[{"server":"abc.abc.net"},{"server":"172.55.55.55:8080"},{"server":"172.55.55.5:8080"}],
"recommend":"abc.abc.net"}
这是服务器返回的JSON值,我做的是Winform客户端,像hasnew、curver、disable、update、recommend这几个字段我都能取到值,但是servers这个集合我取不到值!忙了两天啦,没弄出来,刚刚接触JSON,不懂!各位大神,急救!!!!!
下边是我写的实体类:
    
    [DataContractAttribute]
    /// <summary>
    /// 实体类父类
    /// </summary>
    public class versionandserver
    {
        [DataMember]
        public int hasnew { get; set; }
        [DataMember]
        public float curver { get; set; }
        [DataMember]
        public int disable { get; set; }
        [DataMember]
        public string update { get; set; }
        [DataMember]
        public List<jsonclass> servers { get; set; }
        [DataMember]
        public string recommend { get; set; }
    }    /// <summary>
    /// 实体类子类
    /// </summary>
    public class jsonclass
    {
        public string srever { get; set; }
    }

解决方案 »

  1.   


        public class versionandserver
        {
            [DataMember]
            public int hasnew { get; set; }
            [DataMember]
            public float curver { get; set; }
            [DataMember]
            public int disable { get; set; }
            [DataMember]
            public string update { get; set; }
            [DataMember]
            public jsonclass [] servers { get; set; }
            [DataMember]
            public string recommend { get; set; }
        }
      

  2.   

    另外 子类也要写成上面那个类的形式
        [DataContractAttribute]
        public class jsonclass
        {
            [DataMember]
            public string srever { get; set; }
        }
      

  3.   

    还有, server写错了
    public string srever { get; set; }汗。。
      

  4.   

    我解析后得到的是versionandserver类得objVAS对象,
    弹出弹窗,显示
    MessageBox.Show(objVAS.servers[0].srever.ToString());
    第一个server值,但是报错说server为null
      

  5.   


    [DataMember]
            public List<string> servers { get; set; }
      

  6.   

    实际编码验证了一下,确认了一下几点1. 
    [DataMember]
     public List<jsonclass> servers { get; set; }
    这里写成 List<jsonclass> servers 和 jsonclass[] servers 都是正确的。2. 子类这两种形式都正确
        
        public class jsonclass
        {
            public string server { get; set; }
        }    [DataContract]
        public class jsonclass
        {
             [DataMember]
            public string server { get; set; }
        }3. 真正需要修改的只有拼写错误4. 12楼的方法不可行,结构和数据不匹配