国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#操作 JSON方法匯總

2019-10-29 21:37:28
字體:
來源:轉載
供稿:網友

本文給大家匯總了一下使用C#操作Json的方法,非常的簡單實用,有需要的小伙伴可以參考下

RestAPI中, 經常需要操作json字符串, 需要把json字符串"反序列化"成一個對象, 也需要把一個對象"序列化"成一字符串。

C# 操作json, 比較簡單。 本文介紹幾種方法

步驟

Json 字符串 反序列化成對象 共需要2步:

第一步:建立相應的實體類

第二步: 調用方法把Json字符串"反序列化"成對象

了解json的語法

首先要了解json的語法,這樣才能知道怎么創建實體類.

Json 的語法很簡單, 就四條

數據在名稱/值對中

數據由逗號分隔

花括號保存對象

方括號保存數組

創建實體類的例子

{"FirstName":"小坦克","LastName":"Tank","Age":30}

相應的實體類可以為

 

 
  1. public class Person  
  2. public String FirstName 
  3. { get; set; } 
  4.  
  5. public String LastName 
  6. { get; set; } 
  7.  
  8. public int Age 
  9. { get; set; } 

自動生成JSON的實體類

一個復雜的實體類,我們自己去寫的話,可能需要1個小時以上。 那有沒有工具能直接生成實體類呢,這樣能方便太多了。 當然有

http://jsonclassgenerator.codeplex.com/ ----開源的winform工具。

使用第三方工具 Newtonsoft.Json.dll

優點: 使用非常方便. 看個例子就知道怎么用了

下載地址http://m.survivalescaperooms.com/dll/Newtonsoft.Json.dll.html

代碼示例:

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using Newtonsoft.Json; 
  6.  
  7. namespace JsonDemo 
  8. class Program 
  9. static void Main(string[] args) 
  10. string personJson = "{ 'FirstName': '小坦克','LastName':'Tank xiao', 'Age':'30', 'Books':[{'BookName':'c#', 'Price':'29.9'},{'BookName':'Mac編程', 'Price':'39.9'}]}"
  11.  
  12. string allMoveJson = @"[{ 'FirstName''小坦克','LastName':'Tank xiao''Age':'30''Books':[{'BookName':'c#''Price':'29.9'},{'BookName':'Mac編程''Price':'39.9'}]},{ 
  13. 'FirstName''小坦克2','LastName':'Tank xiao2''Age':'40''Books':[{'BookName':'c#''Price':'29.9'},{'BookName':'Mac編程''Price':'39.9'}]}]"; 
  14.  
  15. // 反序列化 單個對象 
  16. Person oneMovie = JsonConvert.DeserializeObject<Person>(personJson); 
  17.  
  18. // 反序列化 對象集合 
  19. List<Person> allMovie = JsonConvert.DeserializeObject<List<Person>>(allMoveJson); 
  20.  
  21. Console.WriteLine(oneMovie.FirstName); 
  22. Console.WriteLine(allMovie[1].FirstName); 
  23.  
  24. // 序列化 
  25. string afterJson = JsonConvert.SerializeObject(allMovie); 
  26.  
  27.  
  28. public class Person 
  29. public String FirstName 
  30. { get; set; } 
  31.  
  32. public String LastName 
  33. { get; set; } 
  34.  
  35. public int Age 
  36. { get; set; } 
  37.  
  38. public List<Book> Books 
  39. { get; set; } 
  40.  
  41. public class Book 
  42. public string BookName 
  43. { get; set; } 
  44.  
  45. public string Price 
  46. { get; set; } 

最后我們來看個實例

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Text; 
  4. using Newtonsoft.Json; 
  5.  
  6. namespace TestJson 
  7. class Program 
  8. static void Main(string[] args) 
  9.  
  10.  
  11. string json = "{/"a/":/"sadsad/",/"c/":{/"d/":/"adad/"}}"
  12.  
  13. //CCC ccc = new CCC(); 
  14. //ccc.d = "adad"; 
  15.  
  16. //AAA aaa = new AAA(); 
  17. //aaa.a = "sadsad"; 
  18. //aaa.b = "dfgdg"; 
  19. //aaa.c = ccc; 
  20.  
  21.  
  22. AAA aaa = new AAA(); 
  23.  
  24. aaa= JavaScriptConvert.DeserializeObject<AAA>(json); 
  25.  
  26.  
  27. // string json = JavaScriptConvert.SerializeObject(aaa); 
  28.  
  29. // Console.WriteLine(json); 
  30.  
  31. Console.Read(); 
  32.  
  33.  
  34. public class AAA { 
  35.  
  36. private string m_a; 
  37. public string a 
  38. get { return m_a; } 
  39. set { m_a = value; } 
  40.  
  41. private string m_b; 
  42. public string b 
  43. get { return m_b; } 
  44. set { m_b = value; } 
  45.  
  46. private CCC m_c; 
  47. public CCC c 
  48. get { return m_c; } 
  49. set { m_c = value; } 
  50. public class CCC 
  51. private string m_d; 
  52. public string d 
  53. get { return m_d; } 
  54. set { m_d = value; } 
  55. }  
  56.  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江达县| 墨脱县| 苍梧县| 青州市| 乌拉特前旗| 永春县| 福清市| 庆阳市| 阳泉市| 辽宁省| 登封市| 双峰县| 婺源县| 盘山县| 凤庆县| 周宁县| 越西县| 怀远县| 翁源县| 璧山县| 吴江市| 田阳县| 东至县| 辰溪县| 米林县| 常宁市| 明星| 宁河县| 田东县| 无锡市| 江川县| 墨脱县| 兴城市| 凤冈县| 海晏县| 南江县| 灵台县| 和田县| 乌鲁木齐市| 河西区| 英超|