C#实现json格式数据解析功能的方法详解

C#实现json格式数据解析功能的方法详解,第1张

概述本文实例讲述了C#实现json格式数据解析功能的方法。分享给大家供大家参考,具体如下:

本文实例讲述了C#实现Json格式数据解析功能的方法。分享给大家供大家参考,具体如下:

来写写Json的解析吧

首先添加web引用

System.Web.Extensions

路径

@H_404_13@c:\Program files (x86)\Reference AssemblIEs\Microsoft\Framework\v3.5\System.Web.Extensions.dll

接下来就是两个函数了,一个是根据key来获取,一个是根据index来获取

public static bool GetValue(string Json,string key,out string value){  //解析失败的默认返回值  value = "";  JavaScriptSerializer serializer = new JavaScriptSerializer();  try  {    Dictionary<string,object> obj_Json = serializer.DeserializeObject(Json) as Dictionary<string,object>;    if (obj_Json.ContainsKey(key))    {      value = serializer.Serialize(obj_Json[key]);      return true;    }    return false;  }  catch (Exception)  {    return false;  }}public static bool GetValue(string Json,int index,out string value){  //解析失败的默认返回值  value = "";  JavaScriptSerializer serializer = new JavaScriptSerializer();  try  {    object[] obj_Json = serializer.DeserializeObject(Json) as object[];    if (obj_Json.Length > index)    {      value = serializer.Serialize(obj_Json[index]);      return true;    }    return false;  }  catch (Exception)  {    return false;  }}

再上一段测试效果图吧

测试文本(用的是  http://tools.jb51.net/tools/json/json_editor.htm 这个在线解析Json的工具里提供的一段Json格式,稍作修改 )
复制代码 代码如下:{"a":[{"中国食谱":["上海醉蟹","北京锅烧鸡","川式凉拌豇豆","清真酱牛肉"],"更多":{"中式":["南","北",{"地方":["小吃","大餐"]},"更多选择"]}},"其它"],"b":"123","c":32}

树形结构如图

测试代码(新建winform项目,添加引用,然后copy上方两个静态方法,窗体放一个textBox,双击窗体,哦对,Json文本我把放在了桌面名为1.txt的文件,因为很多引号,懒得替换成转义的了)

private voID Form1_Load(object sender,EventArgs e){  string Json = System.IO.file.ReadAllText(@"C:\Users\taoguo\Desktop.txt",EnCoding.Default);  string value;  GetValue(Json,"a",out value);  GetValue(value,"中国食谱",out value);  textBox1.Text = value;}

运行结果

最后提一下,如果value是int类型的(比如说"ID":1),那么取ID返回的文本是 1 ,

而如果value是字符串类型(比如说"ID":"1"),那么取ID返回的文本是 "1",两边会有双引号,这里可以在方法里面稍作判断

如下

public static bool GetValue(string Json,object>;    if (obj_Json.ContainsKey(key))    {      //加上这个类型判断即可      if (obj_Json[key] is System.String)      {        value = obj_Json[key].ToString();        return true;      }      value = serializer.Serialize(obj_Json[key]);      return true;    }    return false;  }  catch (Exception)  {    return false;  }}

PS:关于Json *** 作,这里再为大家推荐几款比较实用的Json在线工具供大家参考使用:

在线JsON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JsON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JsON互相转换工具:
http://tools.jb51.net/code/xmljson

Json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线Json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

更多关于C#相关内容还可查看本站专题:《C#字符串 *** 作技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#程序设计之线程使用技巧总结》、《C#中XML文件 *** 作技巧汇总》、《C#数据结构与算法教程》、《C#数组 *** 作技巧总结》及《C#面向对象程序设计入门教程》

希望本文所述对大家C#程序设计有所帮助。

总结

以上是内存溢出为你收集整理的C#实现json格式数据解析功能的方法详解全部内容,希望文章能够帮你解决C#实现json格式数据解析功能的方法详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1253661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存