在接口开发的过程中日常通过接口获取数据再次来到是json格式字符串。

可是回到的字符串可能相比较复杂,可能无休止一连串型的数目。

例如:

{
    "resultCode": "0",
    "resultMsg": "查询成功!",
    "resultData": {
        "classinfo": [
            {
                "classNo": "101",
                "className": "小A"

            },
            {
                "classNo": "101",
                "className": "小B"
            },

        ],
        "otherinfo": [
            {
                "otherNo": "1111",
                "otherType": "A"            
            },
            {

                "otherNo": "222",
                "otherType": "b",
            }
         ]
    }
}

如何分析呢剔除其他音信只得到具体数额吧?

ps:使用JavaScriptSerializer 或者 Json.Net 都可以

 第一种情势本身用的是JavaScriptSerializer 。

 第两种艺术用的是 Json.Net
不过需要在NuGET里面添加该服务(推荐)或者上网下载dll文件引入。

艺术一: 直接遵照json的格式构建对象就足以一向解析了

这么具有的回来数据就变成一个对象。

  JavaScriptSerializer jss = new JavaScriptSerializer();
 result_Msg result = jss.Deserialize<result_Msg>(json);

 

1  
2                     if (result.resultData.classinfo!= null && result.resultData.classinfo.Count > 0)
3                     {
4                       List<classinfo>  classinfos= result.resultData.classinfo;
5                     }

 

 1     [Serializable]
 2     [DataContract]
 3     public class result_Msg
 4     {
 5         /// <summary>
 6         /// code
 7         /// </summary>
 8         [DataMember(IsRequired = false)]
 9         public string resultCode { get; set; }
10         /// <summary>
11         /// msg
12         /// </summary>
13         [DataMember(IsRequired = false)]
14         public string resultMsg { get; set; }
15         /// <summary>
16         /// 数据集合
17         /// </summary>
18         [DataMember(IsRequired = false)]
19         public resultData resultData { get; set; }
20     }

1  [Serializable]
2     public class resultData
3     {
4         public List<classinfo> classinfo{ get; set; }
5         public List<otherinfo> otherinfo{ get; set; }
6       
7     }

 方法二
:先解析成字典,获取到多少之后再一次转移成json然后解析,思路是这多少个思路,假若赶上任何更为扑朔迷离的json也足以
按照这么些思路去分析

 1             //第一次解析
 2             Dictionary<string, object> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
 3             //获取具体数据部分
 4             object obj = dic["resultData"];
 5             //将数据部分再次转换为json字符串
 6             string jsondata =  Newtonsoft.Json.JsonConvert.SerializeObject(obj);
 7             //获取数据中的  不同类型的数据   
 8             Dictionary<string, object> dicc = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(jsondata);
 9 
10             //chalssinfo 
11             object objclass = dicc["classinfo"];
12             string jsonclass = Newtonsoft.Json.JsonConvert.SerializeObject(objclass);
13             DataTable tclass = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonclass);
14             //otherinfo 
15             object objother = dicc["otherinfo"];
16             string jsonother = Newtonsoft.Json.JsonConvert.SerializeObject(objother);
17             DataTable tother = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonother);
18 
19 
20            // tclass 和  tother 里面分别存放 classinfo和otherinfo  然后可以操作datatale 或者转成list也行
21  

 假使还有任何的点子请报告 谢谢!!

相关文章

网站地图xml地图