欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# SimpleJSON字典反序列化實戰(zhàn)教程

 更新時間:2024年03月27日 11:07:28   作者:Shepherd0619  
C# 解析JSON道路千萬條,其中最流行的還是由Newtonsoft出品的Json.NET,只需要將Json的結(jié)構(gòu)做成C#的class,即可實現(xiàn)完美的序列化和反序列化,這篇文章主要介紹了C# SimpleJSON字典反序列化實戰(zhàn)教程,需要的朋友可以參考下

C# 解析JSON道路千萬條,其中最流行的還是由Newtonsoft出品的Json.NET,只需要將Json的結(jié)構(gòu)做成C#的class,即可實現(xiàn)完美的序列化和反序列化。更重要的是它還支持LINQ。

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }
string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";
Movie m = JsonConvert.DeserializeObject<Movie>(json);
string name = m.Name;
// Bad Boys
JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));
JObject o = new JObject();
o["MyArray"] = array;
string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

但也不妨有同志因為SDK大小等種種原因?qū)で笠粋€輕量替代方案,SimpleJSON就是其中一個選擇,只用一個C#腳本就干完了JSON解析的事兒

SimpleJSON的用法很簡單,(當(dāng)然老規(guī)矩,還得是基于我的一個開源項目來講,歡迎點個star)先讀出來json字符串,然后用JSONNode.Parse(你的字符串)即可獲得反序列化JSON文件后的根節(jié)點。

public static void Initialize()
    {
        Configuration = JSONNode.Parse(File.ReadAllText("appsettings.json"));
    }

如上面代碼所示,我的json字符串在一個叫appsettings.json文件里,文件內(nèi)容如下:

{
  "Discord": {
    "token": "your-bot-token",
    "channel": "your-channel-id",
    "logChannel": "your-bot-log-channel-id (leave it empty if you dont want log. )"
  },
  "Unity": [
    {
      "2022.3.14f1": "E:\\Program Files\\Unity 2022.3.14f1\\Editor\\Unity.exe"
    }
  ],
  "Projects": [
    {
      "name": "example",
      "path": "D:\\Unity_Projects\\example",
      "unityVersion": "2022.3.14f1",
      "playerBuildOutput": "D:\\Unity_Projects\\example\\Build",
      "addressableBuildOutput": "D:\\Unity_Projects\\example\\ServerData"
    }
  ],
  "Ssh": {
    "address": "",
    "user": "",
    "password": "",
    "privateKeyPath": "",
    "keepAliveInterval": "-1",
    "expectedFingerprints": []
  }
}

其中Unity節(jié)點下是一個列表,列表相當(dāng)于是一個Dictionary<string, JSONNode>,我們得稍微處理一下。

EditorInstallations = new Dictionary<string, string>();
        foreach (JSONNode node in ConfigurationUtility.Configuration["Unity"].AsArray)
        {
            foreach (var kvp in node)
            {
                EditorInstallations.Add(kvp.Key, kvp.Value.Value);
                _logger.LogInformation($"[{GetType()}] Found a Unity Editor installation! {kvp.Key}, {kvp.Value}");
            }
        }

對于這種列表的情況,SimpleJSON給我們預(yù)留了JSONArray,里面包含了JSONNode列表。

我們再進到JSONNode去看,你會發(fā)現(xiàn)JSONNode其實是有KeyValuePair的。

Key是一個string,也就是字段名,Value還是一個JSONNode,至于怎么處理Value里的東西就看當(dāng)時怎么規(guī)定的類型了。如果是string,那就直接拿JSONNode的Value就可以了。

?重要提醒:有同志用ToString習(xí)慣了直接就上去用了,這是不太對的。雖說SimpleJSON的確實現(xiàn)了ToString方法,但其實干的事情和函數(shù)名不是完全一致,它實際上是返回了JSON字符串,和我們理解的string的不同點在于它返回的字符串的開頭和結(jié)尾會帶著雙引號!請務(wù)必注意這一點,除非你有特殊需求,否則請直接從JSONNode.Value拿。關(guān)于這塊的更詳細(xì)解釋,請見此issue。

到此這篇關(guān)于C# SimpleJSON字典反序列化的文章就介紹到這了,更多相關(guān)C# SimpleJSON反序列化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#/VB.NET實現(xiàn)從PPT中提取圖片的示例代碼

    C#/VB.NET實現(xiàn)從PPT中提取圖片的示例代碼

    PPT是用于制作幻燈片(演示文稿)的應(yīng)用軟件,每張幻燈片中都可以包含文字、圖形、圖形、表格、聲音和影像等多種信息。本文主要介紹了如何實現(xiàn)從PPT中提取圖片的功能,需要的可以參考一下
    2023-03-03
  • C# 添加Word文本和圖片超鏈接的方法

    C# 添加Word文本和圖片超鏈接的方法

    本文給大家介紹如何用C#編程語言對Word文檔中的文本和圖片進行超鏈接設(shè)置。感興趣的朋友一起看看吧
    2017-10-10
  • C#啟動外部程序的幾種常用方法匯總

    C#啟動外部程序的幾種常用方法匯總

    這篇文章主要介紹了C#啟動外部程序的幾種常用方法匯總,對C#初學(xué)者來說有很高的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • c# 實現(xiàn)文件上傳下載功能的實例代碼

    c# 實現(xiàn)文件上傳下載功能的實例代碼

    這篇文章主要介紹了如何用c# 實現(xiàn)文件上傳下載功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#中dynamic關(guān)鍵字的正確用法(推薦)

    C#中dynamic關(guān)鍵字的正確用法(推薦)

    dynamic的出現(xiàn)讓C#具有了弱語言類型的特性。dynamic是FrameWork4.0的新特性。這篇文章主要介紹了C#中dynamic關(guān)鍵字的正確用法(推薦)的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • C#操作注冊表的方法詳解

    C#操作注冊表的方法詳解

    這篇文章主要介紹了C#操作注冊表的方法,結(jié)合實例形式較為詳細(xì)的分析了C#針對注冊表的創(chuàng)建、打開、讀取、寫入、修改、刪除等技巧,需要的朋友可以參考下
    2015-12-12
  • 基于C#編寫一個接受圖片流的OCR識別接口

    基于C#編寫一個接受圖片流的OCR識別接口

    這篇文章主要為大家詳細(xì)介紹了如何使用C#寫一個接受圖片流的OCR識別接口,以及測試用例調(diào)用接口,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#使用Aspose.Cells控件讀取Excel

    C#使用Aspose.Cells控件讀取Excel

    本文介紹Aspose.Cells基礎(chǔ)的用法,供大家參考。
    2016-03-03
  • 服務(wù)器端C#實現(xiàn)的CSS解析器

    服務(wù)器端C#實現(xiàn)的CSS解析器

    服務(wù)器端C#實現(xiàn)的CSS解析器
    2008-09-09
  • Unity UI實現(xiàn)循環(huán)播放序列圖

    Unity UI實現(xiàn)循環(huán)播放序列圖

    這篇文章主要為大家詳細(xì)介紹了Unity UI實現(xiàn)循環(huán)播放序列圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論