分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

利用litJson解析Json接口(一)

发布时间:2023-09-06 02:28责任编辑:熊小新关键词:暂无标签

目录

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

阐述

  • 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,以后都会详情介绍。

感激

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

  • 简书
  • 菜鸟教程
  • 开源中国
  • CSDN
  • 51CTO
  • GitHub
  • StackOverFlow

关于作者

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

利用litJson解析Json接口(一)

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved