C# dynamic類型序列化和反序列化之Newtonsoft.Json,動態解析遠端返回的jSON數據


一、說明

1.Newtonsoft.Json 中的Linq To Json中提供了方便的json數據查詢、修改等操作。

例如:JObject,JArray

2.在JObject.FromObject()或JArray.FromObject()中也提供了對dynamic類型的支持。

二、dynamic轉json字符串處理

 

  1.  
    using Newtonsoft.Json;
  2.  
    using Newtonsoft.Json.Linq;

1.使用JObject對象

 

  1.  
    dynamic obj = new JObject();
  2.  
    obj.name = "張三豐";
  3.  
    obj.age = 10;
  4.  
    obj.birthday = DateTime.Now;
  5.  
     
  6.  
    Console.WriteLine(obj.ToString());

輸出結果:

 

  1.  
    {
  2.  
    "name": "張三豐",
  3.  
    "age": 10,
  4.  
    "birthday": "2017-07-29T16:39:47.4549601+08:00"
  5.  
    }


2.使用JObject.FromObject()

 

  1.  
    dynamic obj = new System.Dynamic.ExpandoObject();
  2.  
    obj.name = "張三豐";
  3.  
    obj.age = 10;
  4.  
    obj.birthday = DateTime.Now;
  5.  
     
  6.  
    string result = JObject.FromObject(obj).ToString();
  7.  
    Console.WriteLine(result);

輸出結果:同上

三、將json字符串發序列化為dynamic類型

 

  1.  
    string json = @"
  2.  
    {
  3.  
    'Title': 'Json.NET is awesome!',
  4.  
    'Author': {
  5.  
    'Name': 'James Newton-King',
  6.  
    'Twitter': '@JamesNK',
  7.  
    'Picture': '/jamesnk.png'
  8.  
    },
  9.  
    'Date': '2013-01-23T19:30:00',
  10.  
    'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
  11.  
    }
  12.  
    ";
  13.  
    dynamic blogPost = JObject.Parse(json);
  14.  
    string title = blogPost.Title;
  15.  
    Console.WriteLine(title); //輸出:Json.NET is awesome!
  16.  
    Console.WriteLine(blogPost.Date); //輸出:2013/1/ 23 19:30:00


官方示例:

Querying JSON with dynamicCreate JSON with dynamic

更多:

C# Newtonsoft.Json JsonSerializerSettings配置序列化操作

C#Json序列化、反序列化之Dictionary 字典類型

C# Newtonsoft.Json之LINQ To Json實例(二)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM