1. 程式人生 > >Json.NET 入門

Json.NET 入門

解析 ESS [] 字符 object tel ron 查看 img

Json.NET是 Json的.net框架實現,有了它我們可以在.NET程序中方便的使用 Json,例如:解析 Json 字符串的鍵值、生成 Json 字符串、與對象之間進行轉換等等。而且是開源的,非常方便我們學習和使用。

Json.NET的網址:https://www.newtonsoft.com/json


下面介紹一些基本的使用方法

使用下面代碼前,需先添加引用

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

1. 讀取 Json 字符串中的鍵值信息

        static void Main(string[] args)
        {
            
string jStr = "{name: ‘momo‘, birthday: ‘2016-8-1‘, weidht: 11.5, loveFoods: [‘milk‘, ‘chicken‘]}"; //Json 字符串 JObject jObj = null; try { jObj = JObject.Parse(jStr); //將 Json 字符串轉換成 JObject 類型,如果 Json 字符串不合法,會異常。 } catch (Exception ex) { Console.WriteLine(ex.Message);
return; } //通過名稱讀取值 Console.WriteLine("=========================通過名稱讀取值"); Console.WriteLine(jObj["name"]); Console.WriteLine(jObj.GetValue("birthday")); //遍歷所有鍵值對 Console.WriteLine("=========================遍歷所有鍵值對");
foreach (var item in jObj) { Console.WriteLine(item.Key.ToString() + ": " + item.Value.ToString()); } Console.ReadLine(); }

輸出結果

技術分享圖片

2. 生成 Json 字符串

       //生成 Json 字符串
            Console.WriteLine("=========================生成 Json 字符串");
            JObject jObj2 = new JObject();
            string name = "tongtong";
            int age = 2;
            JArray interests = new JArray("singing", "swim", "watching TV");
            jObj2.Add("name", name);
            jObj2.Add("age", age);
            jObj2.Add("interests", interests);
            Console.WriteLine(jObj2.ToString(Formatting.Indented));

輸出結果

技術分享圖片

3. 對象和 Json 字符串互相轉換

先定義一個類

    public class Person
    {
        public string Name { get; set; } = "momo";
        public DateTime Birthday { get; set; } = new DateTime(2016, 8, 1);
        public double Weight { get; set; } = 11.5;
        public string[] LoveFoods { get; set; } = new string[] { "milk", "chicken" };
    }

使用 JsonConvert 中的方法進行轉換

       //對象轉化成 Json
            Console.WriteLine("=========================對象轉化成 Json");
            Person person1 = new Person();
            person1.Name = "Lily";
            string jStr1 = JsonConvert.SerializeObject(person1, Formatting.Indented);
            Console.WriteLine(jStr1);
            //Json 轉化成對象
            Console.WriteLine("=========================Json 轉化成對象");
            Person person2 = JsonConvert.DeserializeObject<Person>(jStr1);
            Console.WriteLine(person2.Name);

輸出結果

技術分享圖片

總結

Json.Net 的功能遠不止於此,查看幫助文檔深入學習。

幫助文檔地址:https://www.newtonsoft.com/json/help/html/Introduction.htm

註:這裏程序測試使用的是 Json.net 2.0 的dll。

技術分享圖片

Json.NET 入門