Json.NET實現json的讀取,新增,刪除,修改

風靈使發表於2018-10-18

示例json:

{
    "name": "御道風雲",
    "url": "http://www.yudaofengyun.com",
    "age": 16,
    "sex": "男",
    "address": {
        "city": "鄭州",
        "state": "河南",
        "country": "中國"
    },
    "links": [
        {
            "name": "Google",
            "url": "http://www.google.com"
        },
        {
            "name": "Baidu",
            "url": "http://www.baidu.com"
        },
        {
            "name": "SoSo",
            "url": "http://www.SoSo.com"
        }
    ]
}

讀取json檔案資料到string

string josnString = File.ReadAllText(FilePath, Encoding.Default);

建立JObject物件

JObject jo = JObject.Parse(josnString);

json讀取

JObject物件+索引 即可讀取對應的資料

如果索引錯誤,程式會直接報錯,注意try\catch

讀取到的結果為JToken物件,根據自己的需要進行轉換.

            string all = jo.ToString();
            string neame= jo["name"].ToString();
            int age    = int.Parse(jo["age"].ToString());
            string city = jo["address"]["city"].ToString();
            string baiduUrl = jo["links"][1]["url"].ToString();

json新增

通過呼叫JObjectAdd方法進行新增,

傳入引數(鍵名,JToken物件)

預設新增到json的末端

JToken物件可由JObject轉換為

json刪除

通過呼叫JObjectRemove方法進行刪除

傳入引數鍵名

json修改

使用=可重新賦值

  jo["name"] = "新名字";

所賦值可以是string,int,boolean,JToken,JObject.

建立一個空("{ }")的JObject物件,通過一定的順序和方法,將原jo中的資料賦值到空JObject,可以實現增刪排序等效果.


JSON中JObjectJArray的修改

一、JObjectJArray的新增、修改、移除

1.先新增一個json字串,把json字串載入到JObject中,然後轉換成JObject.根據索引修改物件的屬性值,移除屬性,新增屬性

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Web;
    using GongHuiNewtonsoft.Json.Linq;
     
    namespace JSONDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                string json = @"{
                    'post':{
                        'Title':'修改JArray和JObject',
                        'Link':'http://write.blog.csdn.net',
                        'Description':'這是一個修改JArray和JObject的演示案例',
                        'Item':[]
                    }
                }";
     
                JObject o = JObject.Parse(json);
                JObject post = (JObject)o["post"];
     
                post["Title"] = ((string)post["Title"]).ToUpper();
                post["Link"] = ((string)post["Link"]).ToUpper();
     
                post.Property("Description").Remove();
     
                post.Property("Link").AddAfterSelf(new JProperty("New", "新新增的屬性"));
     
                JArray a = (JArray)post["Item"];
                a.Add("修改JArray");
                a.Add("修改JObject");
     
                Console.WriteLine(o.ToString());
            }
        }
    }

2.執行的結果
在這裡插入圖片描述

相關文章