码迷,mamicode.com
首页 > Web开发 > 详细

利用litJson解析Json接口(一)

时间:2019-01-02 19:21:19      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:material   amr   child   litjson   post   场景   添加   esc   des   

目录

  • 使用的第三方库
  • 添加的引用
  • 适用场景
  • 举例说明
  • 小结

阐述

  • litJson作为优秀的第三方库,是解析Json很好的工具。

  • 使用的第三方库

 添加引用 litJson,如下两个引用可直接添加System.ServiceModel.Web,System.Runtime.Serialization
  • 添加using指令集
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using LitJson;

适用情景

  • 解析Json字符串
  • 解析本地Json文件
  • 解析Json接口Api,解析带签名的Json接口

举例子说明

  • 解析Json接口Api,解析带签名的Json接口

  • 首先Json字符串内容如下,是接口url的内容。大致可以看到,字典里面嵌套着字典,我们可以先取library中的字典,再取字典中的Key和Value值。
  • 解析固定格式的Json,还有读取本地Json文件,都很类似。

{
    "library": [{
        "materialManufacturer": "11",
        "regularLabelling": "",
        "sheetLabelling": ""
    }, {
        "materialManufacturer": "fqwfewq",
        "regularLabelling": "",
        "sheetLabelling": ""
    }]
}
  • 先定义两个类
       //一个材料信息,包含如下成员
        public class MaterialItem
        {
            public static List<MaterialItem> materialList = new List<MaterialItem>();
            public string materialManufacturer { get; set; }
            public string regularLabelling { get; set; }
            public string sheetLabelling { get; set; }
        }
        //材料类
        public class Material
        {
            public Material()
            {
                MaterialItem = new MaterialItem();
            }
            public string matrail { get; set; }
            public MaterialItem MaterialItem { get; set; }
        }
  • 方法的调用,这边的参数一般都是写成活的,写法可灵活变更
        /// <summary>
        /// 主方法
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {

            //接口url
            string url = " http://192.168.42.46/Windchill/servlet/Navigation/MaterialLibraryServlet ";
            //签名
            string restName = "Authorization";
            //认证
            string restValue = "Basic d2NhZG1pbjp3Y2FkbWlu";
            //传入参数,读取Json字符串
            GetJsonData(url, restName, restValue);
        }
  • 解析Json的方法封装,逻辑也是比较清晰,GET请求,请求头的添加,获取数据流文件,再父级Key下的字典,再从字典中取键值对。最后添加到list集合中,搞定数据解析。如何利用lis结合要结合具体的业务场景。
        /// <summary>
        /// Json解析的方法封装
        /// </summary>
        /// <param name="tmpUrlI">传入的接口Url</param>
        /// <param name="tmpKeyName">签名</param>
        /// <param name="tmpKeyValue">认证</param>
        public static void GetJsonData(string tmpUrlI, string tmpKeyName, string tmpKeyValue)
        {
            //获取请求
            HttpWebRequest request = WebRequest.Create(tmpUrlI) as HttpWebRequest;
            //加入请求头
            request.Headers.Add(tmpKeyName, tmpKeyValue);
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                //获取响应数据流
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                //获得json字符串
                string jsonstr = reader.ReadLine();
                JsonData jsonData = JsonMapper.ToObject(jsonstr);
                if (jsonData != null)
                {
                    //取library下键值字典
                    JsonData jsonDicList = jsonData["library"];
                    foreach (JsonData item in jsonDicList)
                    {
                        MaterialItem JO = new MaterialItem();
                        JO.materialManufacturer = item["materialManufacturer"].ToString();
                        JO.regularLabelling = item["regularLabelling"].ToString();
                        JO.sheetLabelling = item["sheetLabelling"].ToString();
                        MaterialItem.materialList.Add(JO);
                    }
                }
            }
        }

小结

  • Json是数据与数据之间进行交互,很快捷的方式之一。
  • 随着互联网产业的发展。手机应用,网站建设,Json更是成为开发者,必不可少的技能之一。
  • get,post请求,待参数的Json,以后都会详情介绍。

感激

星星之火可以燎原,今日点滴的付出,是日后的苦尽甘来。莫愁前路漫漫,天下谁人不识君。感谢你阅读此文稿,也希望你能不吝赐教。推荐比较全面的个人学习网站,希望对你有帮助。

关于作者

  var normalChild = {
    nickName  : "墨客码",
    site : "http://www.cnblogs.com/gss0525/"
    descTarget : ".net后台开发者,热衷分享技术,心怀感恩,深耕不缀。"
  }

利用litJson解析Json接口(一)

标签:material   amr   child   litjson   post   场景   添加   esc   des   

原文地址:https://www.cnblogs.com/gss0525/p/10209715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!