亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2017年12月01日 12:20:13   作者:濤鍋  
這篇文章主要介紹了C#實現(xiàn)json格式數(shù)據(jù)解析功能的方法,結(jié)合實例形式較為詳細的分析了C#解析json格式數(shù)據(jù)的具體操作步驟與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了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)
{
  //解析失敗的默認返回值
  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":[{"中國食譜":["上海醉蟹","北京鍋燒雞","川式?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)
{
  //解析失敗的默認返回值
  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.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

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

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

在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/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è)計有所幫助。

相關(guān)文章

  • C#微信公眾號開發(fā)之消息處理

    C#微信公眾號開發(fā)之消息處理

    這篇文章介紹了C#微信公眾號開發(fā)之消息處理,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#代碼實現(xiàn)短信驗證碼接口示例

    C#代碼實現(xiàn)短信驗證碼接口示例

    這篇文章主要為大家詳細介紹了C#實現(xiàn)短信驗證碼接口示例代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 關(guān)于C#基礎(chǔ)知識回顧--反射(三)

    關(guān)于C#基礎(chǔ)知識回顧--反射(三)

    在前面例子中,由于MyClass類型的對象是顯示創(chuàng)建的,因此使用反射技術(shù)來調(diào)用MyClass上的方法沒有任何優(yōu)勢--以普通的方式調(diào)用對象上的方法會簡單的多
    2013-07-07
  • WinForm實現(xiàn)最小化到系統(tǒng)托盤方法實例詳解

    WinForm實現(xiàn)最小化到系統(tǒng)托盤方法實例詳解

    這篇文章主要介紹了WinForm實現(xiàn)最小化到系統(tǒng)托盤方法,實例分析了C#中實現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下
    2015-05-05
  • C#實現(xiàn)用于生成條形碼的類

    C#實現(xiàn)用于生成條形碼的類

    這篇文章主要介紹了C#實現(xiàn)用于生成條形碼的類,涉及C#生成條形碼的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • C#讀取csv格式文件的方法

    C#讀取csv格式文件的方法

    這篇文章主要介紹了C#讀取csv格式文件的方法,包括針對csv文件操作的規(guī)則,實例代碼部分包含了數(shù)據(jù)有效性驗證及行列驗證等內(nèi)容,邏輯嚴謹,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法

    C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法

    這篇文章主要介紹了C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法,涉及C#操作時間的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#窗體實現(xiàn)酒店管理系統(tǒng)

    C#窗體實現(xiàn)酒店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C#窗體實現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • string類的使用方法詳解

    string類的使用方法詳解

    string類的使用方法詳解...
    2006-12-12
  • C# DateTime.Compare()方法案例詳解

    C# DateTime.Compare()方法案例詳解

    這篇文章主要介紹了C# DateTime.Compare()方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論