日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

【C#】解析C#中JSON.NET的使用

發(fā)布時間:2023/12/10 C# 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C#】解析C#中JSON.NET的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄結(jié)構(gòu):

contents structure [-]
  • JSON.NET簡介
  • Serializing and Deserializing JSON
  • Json Convert
  • Json Serializer
  • LINQ TO JSON
  • Converting XML
  • Convert JSON to XML
  • Convert XML to JSON
  • 原文鏈接
  • ?

    JSON.NET對于.NET來說是一個非常高效的JSON框架。

    1. JSON.NET的簡介

    • 使用JSON.NET可以很方便的實(shí)現(xiàn).NET對象和JSON對象之間的轉(zhuǎn)化
    • Linq to JSON可以手動讀寫JSON對象
    • 高性能
    • 可以使用JSON格式的數(shù)據(jù)讀寫XML文件
    • 支持.NET2、.NET3.5、.NET4、.NET4.5、Silverlight、Windows Phone 、Windows 8 Store

    ?

    在使用JSON.NET之前應(yīng)該先引入JSON相應(yīng)的EXE/DLL模塊,比如Newtonsoft.Json文件:

    2. Serializing and Deserializing JSON(序列化和反序列化JSON)

    使用JSONSerializer可以非常方便的實(shí)現(xiàn).NET對象與Json數(shù)據(jù)之間的轉(zhuǎn)化,JSONSerializer會把.NET對象的屬性名轉(zhuǎn)化為Json數(shù)據(jù)中的Key,把對象的屬性值轉(zhuǎn)化為Json數(shù)據(jù)中的value。

    2.1? JsonConvert

    //Convert to Json Product product = new Product();product.Name = "Apple";product.ExpiryDate = new DateTime(2008, 12, 28);product.Price = 3.99M;product.Sizes = new string[] { "Small", "Medium", "Large" };string output = JsonConvert.SerializeObject(product); //{ // "Name": "Apple", // "ExpiryDate": "2008-12-28T00:00:00", // "Price": 3.99, // "Sizes": [ // "Small", // "Medium", // "Large" // ] //}//Convert to Object Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);

    ?

    2.2 JsonSerializer

    JsonSerializer可以直接通過流的方式來操作JSON數(shù)據(jù)。

    將對象轉(zhuǎn)化為JSON格式的字符串,然后存儲到本地:

    Product product = new Product(); product.ExpiryDate = new DateTime(2008, 12, 28);JsonSerializer serializer = new JsonSerializer(); serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定轉(zhuǎn)化日期的格式 serializer.NullValueHandling = NullValueHandling.Ignore;//忽略空值using (StreamWriter sw = new StreamWriter(@"d:\json.txt")) using (JsonWriter writer = new JsonTextWriter(sw)) {serializer.Serialize(writer, product);// {"ExpiryDate":new Date(1230375600000),"Price":0} }

    將本地文件中的Json格式數(shù)據(jù),轉(zhuǎn)化為JObject對象:

    JsonSerializer serializer = new JsonSerializer(); serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定轉(zhuǎn)化日期的格式 serializer.NullValueHandling = NullValueHandling.Ignore;//忽略空值using (StreamReader sr = new StreamReader(@"d:\json.txt")) using (JsonReader reader= new JsonTextReader(sr)) {JObject jo =(JObject) serializer.Deserialize(reader); // { // "Name": null, // "ExpiryDate": "2008-12-28T00:00:00", // "Price": 0.0, // "Sizes": null //} }

    案例中的?serializer.NullValueHandling = NullValueHandling.Ignore 表示忽略空值,也就是為null值的屬性不轉(zhuǎn)化,需要注意Decimal的默認(rèn)值不是null,而是0。

    3.LINQ to JSON

    Linq to Json可以非常快速的從JObject對象中查詢數(shù)據(jù),以及創(chuàng)建JObject對象。

    // create JObject
    JObject o = JObject.Parse(@"{'CPU': 'Intel','Drives': ['DVD read/writer','500 gigabyte hard drive']}");
    // query JObject
    string cpu = (string)o["CPU"]; // Intelstring firstDrive = (string)o["Drives"][0]; // DVD read/writer IList<string> allDrives = o["Drives"].Select(t => (string)t).ToList(); // DVD read/writer // 500 gigabyte hard drive

    ?

    4.Converting XML(XML轉(zhuǎn)化)

    4.1 Convert JSON to XML

    string json = @"{'@Id': 1,'Email': 'james@example.com','Active': true,'CreatedDate': '2013-01-20T00:00:00Z','Roles': ['User','Admin'],'Team': {'@Id': 2,'Name': 'Software Developers','Description': 'Creators of fine software products and services.'} }";XNode node = JsonConvert.DeserializeXNode(json, "Root"); //<Root Id="1"> // <Email>james@example.com</Email> // <Active>true</Active> // <CreatedDate>2013-01-20T00:00:00Z</CreatedDate> // <Roles>User</Roles> // <Roles>Admin</Roles> // <Team Id="2"> // <Name>Software Developers</Name> // <Description>Creators of fine software products and services.</Description> // </Team> //</Root>

    4.2 Convert XML to JSON

    string xml = @"<?xml version='1.0' standalone='no'?><root><person id='1'><name>Alan</name><url>http://www.google.com</url></person><person id='2'><name>Louis</name><url>http://www.yahoo.com</url></person> </root>";XmlDocument doc = new XmlDocument(); doc.LoadXml(xml);string json = JsonConvert.SerializeXmlNode(doc);Console.WriteLine(json); // { // "?xml": { // "@version": "1.0", // "@standalone": "no" // }, // "root": { // "person": [ // { // "@id": "1", // "name": "Alan", // "url": "http://www.google.com" // }, // { // "@id": "2", // "name": "Louis", // "url": "http://www.yahoo.com" // } // ] // } // }

    ?

    5.原文鏈接

    JSON.NET Document

    轉(zhuǎn)載于:https://www.cnblogs.com/HDK2016/p/7955179.html

    總結(jié)

    以上是生活随笔為你收集整理的【C#】解析C#中JSON.NET的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。