国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現(xiàn)json格式數(shù)據(jù)解析功能的方法詳解

2020-01-24 00:24:11
字體:
供稿:網(wǎng)友

本文實例講述了C#實現(xiàn)json格式數(shù)據(jù)解析功能的方法。分享給大家供大家參考,具體如下:

來寫寫json的解析吧

首先添加web引用

System.Web.Extensions

路徑

c:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/v3.5/System.Web.Extensions.dll

接下來就是兩個函數(shù)了,一個是根據(jù)key來獲取,一個是根據(jù)index來獲取

public static bool GetValue(string json, string key, out string value){  //解析失敗的默認(rèn)返回值  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){  //解析失敗的默認(rèn)返回值  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.VeVB.COm/tools/json/json_editor.htm 這個在線解析json的工具里提供的一段json格式,稍作修改 )

復(fù)制代碼 代碼如下:
{"a":[{"中國食譜":["上海醉蟹","北京鍋燒雞","川式?jīng)霭梏?,"清真醬牛肉"],"更多":{"中式":["南","北",{"地方":["小吃","大餐"]},"更多選擇"]}},"其它"],"b":"123","c":32}

樹形結(jié)構(gòu)如圖

測試代碼(新建winform項目,添加引用,然后copy上方兩個靜態(tài)方法,窗體放一個textbox,雙擊窗體,哦對,json文本我把放在了桌面名為1.txt的文件,因為很多引號,懶得替換成轉(zhuǎn)義的了)

private void Form1_Load(object sender, EventArgs e){  string json = System.IO.File.ReadAllText(@"C:/Users/taoguo/Desktop/1.txt", Encoding.Default);  string value;  GetValue(json, "a", out value);  GetValue(value, 0, out value);  GetValue(value, "中國食譜", out value);  textBox1.Text = value;}

運行結(jié)果

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

而如果value是字符串類型(比如說"id":"1"),那么取id返回的文本是 "1",兩邊會有雙引號,這里可以在方法里面稍作判斷

如下

public static bool GetValue(string json, string key, out string value){  //解析失敗的默認(rèn)返回值  value = "";  JavaScriptSerializer serializer = new JavaScriptSerializer();  try  {    Dictionary<string, object> obj_json = serializer.DeserializeObject(json) as Dictionary<string, 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:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.VeVB.COm/code/json

JSON在線格式化工具:
http://tools.VeVB.COm/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.VeVB.COm/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.VeVB.COm/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:
http://tools.VeVB.COm/code/json_yasuo_trans

更多關(guān)于C#相關(guān)內(nèi)容還可查看本站專題:《C#字符串操作技巧總結(jié)》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#程序設(shè)計之線程使用技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程

希望本文所述對大家C#程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰宁| 屯昌县| 阳山县| 会昌县| 南京市| 达州市| 灵台县| 阜阳市| 邮箱| 金塔县| 安国市| 邹城市| 平南县| 炎陵县| 谷城县| 磐石市| 法库县| 体育| 临邑县| 龙口市| 香港| 万山特区| 翁牛特旗| 镇安县| 宝应县| 海盐县| 苍溪县| 廊坊市| 沂源县| 仪征市| 建湖县| 镇赉县| 抚松县| 麟游县| 江口县| 丽水市| 稻城县| 安塞县| 冕宁县| 太和县| 嘉义县|