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

Json.Net6.0用法介紹

 更新時(shí)間:2021年12月23日 15:59:13   作者:aehyok  
這篇文章介紹了Json.Net6.0的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值。需要的朋友可以收藏下,方便下次瀏覽觀看

前言

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。簡(jiǎn)單地說(shuō),JSON 可以將 JavaScript 對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。這個(gè)字符串看起來(lái)有點(diǎn)兒古怪,但是 JavaScript 很容易解釋它,而且 JSON 可以表示比"名稱 / 值對(duì)"更復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對(duì)象,而不僅僅是鍵和值的簡(jiǎn)單列表。

它所具有的特性:

  • 1、Flexible JSON serializer for converting between .NET objects and JSON ——靈活的JSON序列化器用于實(shí)現(xiàn).NET對(duì)象與JSON的轉(zhuǎn)換
  • 2、LINQ to JSON for manually reading and writing JSON ——LINQ to JSON用于手動(dòng)讀寫Json
  • 3、High performance, faster than .NET's built-in JSON serializers——高性能,比.NET內(nèi)置的JSON序列化程序速度要更快
  • 4、Writes indented, easy to read JSON ——縮排書寫,使得Json易讀
  • 5、Convert JSON to and from XML——支持JSON 與 XML 兩種格式相互轉(zhuǎn)換
  • 6、Supports .NET 2 .NET 3.5 .NET 4, Silverlight, Windows Phone and Windows 8——支持.NET2.NET3.5.NET4,Silverlight,Windows Phone和Windows 8

在.Net中內(nèi)置了讀寫Json的對(duì)象就是 DataContractJsonSerializer JavaScriptSerializer這兩個(gè)。但是這個(gè)是在.Net 3.5之后才支持的。并且性能上并不優(yōu)秀。

性能對(duì)比圖如下:

這是Json.Net 5與.NET內(nèi)置對(duì)象的性能對(duì)比圖,而現(xiàn)在Json.Net的版本已經(jīng)到達(dá)了Version 6.0.1 ,相信它會(huì)有更好的表現(xiàn)。JSON.NET是開源的,下載地址:http://json.codeplex.com/,這里有完整的源代碼,當(dāng)然也可以參考http://james.newtonking.com/這里。

jb51下載地址:http://www.dbjr.com.cn/codes/571698.html

當(dāng)然通過(guò)VS進(jìn)入Nuget管理包也可以進(jìn)行下載Json.Net的程序包

下面我們來(lái)簡(jiǎn)單的通過(guò)實(shí)例進(jìn)行初步了解JSON.NET。

  • 1、序列化一個(gè)對(duì)象為json字符串。
  • 2、然后再將字符串反序列化為對(duì)象。
  • 3、JSON與XML之間的互轉(zhuǎn)。
  • 4、……當(dāng)然還有其他格式的轉(zhuǎn)換,我們暫時(shí)不進(jìn)行舉例,后面的文章會(huì)對(duì)此進(jìn)行比較詳細(xì)的描述。

Serialize an Object——序列化一個(gè)對(duì)象

首先定義一個(gè)實(shí)體類對(duì)象

public class Account
    {
        public string Email { get; set; }
        public bool Active { get; set; }
        public DateTime CreatedDate { get; set; }
        public IList<string> Roles { get; set; }
    }

實(shí)例化實(shí)體類,然后進(jìn)行序列化為Json字符串

Account account = new Account()
            {
                Email = "aehyok@vip.qq.com",
                Active = true,
                CreatedDate = new DateTime(2014, 3, 27, 0, 0, 0, DateTimeKind.Utc),
                Roles = new List<string>{"aehyok","Kris" }
            };
            string json = JsonConvert.SerializeObject(account, Formatting.Indented);

得到的json字符串結(jié)果為

{
  "Email": "aehyok@vip.qq.com",
  "Active": true,
  "CreatedDate": "2014-03-27T00:00:00Z",
  "Roles": [
    "aehyok",
    "Kris"
  ]
}

Deserialize an Object——反序列化一個(gè)對(duì)象

繼續(xù)使用上面的實(shí)體類

現(xiàn)在是先定義一個(gè)Json的字符串,我們也可以將上面生成的Json字符串進(jìn)行簡(jiǎn)單的修改,然后進(jìn)行反序列化處理

string json = @"{
              'Email': 'aehyok@vip.qq.com',
              'Active': true,
              'CreatedDate': '2014-03-27T00:00:00Z',
              'Roles': [
                'aehyok',
                'Kris'
              ]
            }";
            Account account = JsonConvert.DeserializeObject<Account>(json);

通過(guò)調(diào)試得到的數(shù)據(jù)為

Convert JSON to XML——將JSON轉(zhuǎn)換為XML

首先還是定義一個(gè)Json字符串,然后對(duì)其進(jìn)行轉(zhuǎn)換

string json = @"{
               '@Id': 1,
               'Email': 'aehyok@viq.qq.com',
               'Active': true,
               'CreatedDate': '2014-01-20T00:00:00Z',
               'Roles': [
                 'Kris',
                 'aehyok'
               ],
              'Team': {
                '@Id': 2,
                'Name': 'Software Developers',
                'Description': 'Creators of fine software products and services.'
              }
            }";
            XNode node = JsonConvert.DeserializeXNode(json, "Root");

轉(zhuǎn)換結(jié)果為

Convert XML to JSON——將XML轉(zhuǎn)換為JSON

現(xiàn)在就是需要先定義一個(gè)簡(jiǎn)單的XML字符串,然后對(duì)其進(jìn)行轉(zhuǎn)換處理

string xml = @"<?xml version='1.0' standalone='no'?>
             <root>
               <person id='1'>
               <name>aehyok</name>
               <url>http://www.google.com</url>
               </person>
               <person id='2'>
               <name>Kris</name>
               <url>http://www.baidu.com</url>
              </person>
            </root>";
            
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            
            string json = JsonConvert.SerializeXmlNode(doc);

通過(guò)調(diào)試得到的結(jié)果為

其他功能簡(jiǎn)介

  • 1、Linq to JSON是用來(lái)操作JSON對(duì)象的??梢杂糜诳焖俨樵儭⑿薷?、刪除和創(chuàng)建JSON對(duì)象。當(dāng)JSON對(duì)象內(nèi)容比較復(fù)雜,而我們僅僅需要其中的一小部分?jǐn)?shù)據(jù)時(shí),可以考慮使用Linq to JSON來(lái)讀取和修改部分的數(shù)據(jù)而非反序列化全部。
  • 2、Json.Net不僅支持序列化和反序列化對(duì)象,還支持XML和JSON之間的轉(zhuǎn)換。它支持的數(shù)據(jù)類型與JSON之間的轉(zhuǎn)換,例如:DataSet、DataTable、Entity Framework和NHibernate、Collection、Dictionary、Dynamic等等,大部分的數(shù)據(jù)類型基本都支持。
  • 3、JSON.NET支持BSON數(shù)據(jù)的序列化和反序列化。
    BSON(Binary Serialized Document Format)是一種類json的一種二進(jìn)制形式的存儲(chǔ)格式,簡(jiǎn)稱Binary JSON,它和JSON一樣,支持內(nèi)嵌的文檔對(duì)象和數(shù)組對(duì)象,但是BSON有JSON沒有的一些數(shù)據(jù)類型,如Date和BinData類型。
  • 4、JSON Schema 用于描述JSON數(shù)據(jù)的結(jié)構(gòu)和類型。如同DTD與XML的關(guān)系。
  • 暫時(shí)我了解了這么多的功能。總之,它對(duì)于一些什么為空處理、日期格式控制、忽略屬性轉(zhuǎn)換等等的一些配置處理,都做的非常不錯(cuò),有關(guān)詳細(xì)介紹會(huì)在后續(xù)學(xué)習(xí)之后,進(jìn)行總結(jié)記錄介紹。

到此這篇關(guān)于Json.Net6.0用法介紹的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IIS部署ASP.NET?Core項(xiàng)目及常見問(wèn)題總結(jié)

    IIS部署ASP.NET?Core項(xiàng)目及常見問(wèn)題總結(jié)

    這篇文章介紹了IIS部署ASP.NET?Core項(xiàng)目的方法及常見問(wèn)題總結(jié),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ASP.NET系統(tǒng)關(guān)鍵字及保留字列表整理

    ASP.NET系統(tǒng)關(guān)鍵字及保留字列表整理

    ASP.NET系統(tǒng)關(guān)鍵字及保留字列表,大家在寫程序的時(shí)候一定要避免使用,免得引起不需要的麻煩
    2012-10-10
  • .Net結(jié)構(gòu)型設(shè)計(jì)模式之代理模式(Proxy)

    .Net結(jié)構(gòu)型設(shè)計(jì)模式之代理模式(Proxy)

    這篇文章介紹了.Net結(jié)構(gòu)型設(shè)計(jì)模式之代理模式(Proxy),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Asp.net請(qǐng)求處理之管道處理介紹

    Asp.net請(qǐng)求處理之管道處理介紹

    在了解Asp.net請(qǐng)求處理流程的過(guò)程中,個(gè)人認(rèn)為有必要從源代碼的角度來(lái)了解asp.net管道是怎么實(shí)現(xiàn)的,需要的朋友可以參考下
    2012-11-11
  • 三種方法解決ASP.NET?Core?6中的依賴項(xiàng)

    三種方法解決ASP.NET?Core?6中的依賴項(xiàng)

    這篇文章主要介紹了解決ASP.NET?Core?6依賴項(xiàng)的三種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-11-11
  • 為ABP框架配置數(shù)據(jù)庫(kù)

    為ABP框架配置數(shù)據(jù)庫(kù)

    這篇文章介紹了為ABP框架配置數(shù)據(jù)庫(kù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Entity Framework Core工具使用命令行

    Entity Framework Core工具使用命令行

    這篇文章介紹了Entity Framework Core工具使用命令行,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ASP.NET?Core中的wwwroot文件夾

    ASP.NET?Core中的wwwroot文件夾

    這篇文章介紹了ASP.NET?Core中的wwwroot文件夾,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • 為大家經(jīng)常為md5加密過(guò)的常用admin,admin888,0000密碼

    為大家經(jīng)常為md5加密過(guò)的常用admin,admin888,0000密碼

    為大家經(jīng)常為md5加密過(guò)的常用admin,admin888,0000密碼...
    2007-10-10
  • Asp.Net上傳文件并配置可上傳大文件的方法

    Asp.Net上傳文件并配置可上傳大文件的方法

    這篇文章介紹了Asp.Net上傳文件并配置可上傳大文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論