zoukankan      html  css  js  c++  java
  • json.net处理复杂json

    -------------JSON字符串---------
    {"id":"-1","result":{"relations":[{"ptId":"713990455","game":"风云","gameid":"50","worldid":"1.1","nickname":"贵族≮蓝皓
    ≯","gender":"0","relation":"1"},{"ptId":"714626904","game":"风云","gameid":"50","worldid":"1.1","nickname":"刘凡
    吻","gender":"0","relation":"1"},{"ptId":"719696772","game":"风云","gameid":"50","worldid":"1.1","nickname":"贵族≮杀神
    ≯","gender":"0","relation":"1"},{"ptId":"713969267","game":"风云","gameid":"50","worldid":"1.1","nickname":"吉米
    仔","gender":"0","relation":"1"},{"ptId":"714286741","game":"风云","gameid":"50","worldid":"1.1","nickname":"指定天
    下","gender":"0","relation":"1"},{"ptId":"714905671","game":"风云","gameid":"50","worldid":"1.1","nickname":"冰玉※雅
    儿","gender":"1","relation":"1"},{"ptId":"719695948","game":"风云","gameid":"50","worldid":"1.1","nickname":"ξψ妹妹
    δοο","gender":"1","relation":"1"},{"ptId":"714884563","game":"风云","gameid":"50","worldid":"1.1","nickname":"药王苗子的老
    婆","gender":"0","relation":"1"},{"ptId":"714726500","game":"风云","gameid":"50","worldid":"1.1","nickname":"贵族≮Kiss
    ≯","gender":"0","relation":"32"},{"ptId":"866101129","game":"风云","gameid":"50","worldid":"1.1","nickname":"聂
    风","gender":"0","relation":"32"}],"friendCount":"104"}}
     
    这个json字符串可以分为三个类的组合,最外层我命名为results,中间的命名为relationsInfo,最内的命名为Relations,只要明白以上关系就好办了
    以下为类定义
     
    ----------自定义类---------
    [DataContract(Name = "results")]
        public class results
        {
            [DataMember(Name = "id")]
            public string id{get ;set ; }
     
            [DataMember(Name = "result")]
            public relationsInfo result{get ;  set ;}
        }
     
          [DataContract]
        public class relationsInfo
        {
            [DataMember(Name = "relations")]
            public Relations[] relations{get; set;}
     
            [DataMember(Name = "friendCount")]
            public string friendCount{get;set;}
        }
     
         [DataContract]
        public class Relations
        {
            private string _gender;
           
            [DataMember(Name = "ptId")]
            public string ptId{ get;set;}
     
            [DataMember(Name = "game")]
            public string game{get;set;}
     
            [DataMember(Name = "gameid")]
            public string gameid {get; set;}
     
            [DataMember(Name = "worldid")]
            public string worldid{ get;set;}
     
            [DataMember(Name = "nickname")]
            public string nickname{  get;set;}
     
            [DataMember(Name = "gender")]
            public string gender
            {
                get {
                    if (_gender == "0")
                    {
                        return "男";
                    }
                    else
                    {
                        return "女";
                    }
                }
                set {
                    this._gender = value;
                }
            }
     
            [DataMember(Name = "relation")]
            public string relation{get;set ;}
        }
    ---------------转换方法-----------
     string sRelativeUsersJson; //json来源;
     JsonQueryStringConverter convert = new JsonQueryStringConverter();
     results relations = new results();
     relations = (results)convert.ConvertStringToValue(sRelativeUsersJson, relations.GetType());
    //或
    DataContractJsonSerializer jsr = new DataContractJsonSerializer(typeof(relationsInfo));
    System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(sRelativeUsersJson));
    relationsInfo relations = (relationsInfo)jsr.ReadObject(ms);
     
  • 相关阅读:
    ajax上传图片的本质
    牛逼的bootcss之buttons
    PHP实现登录,注册,密码修改
    thinkphp中的session()方法
    微信企业号支付个人php实现
    js判断是否是用微信浏览器打开
    助店宝微信商城登录流程图
    微信网页授权
    微信公众平台模板消息发送接口文档
    微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
  • 原文地址:https://www.cnblogs.com/MaxIE/p/2819820.html
Copyright © 2011-2022 走看看