Json.NET实现json的读取,添加,删除,修改

示例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.运行的结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/WuLex/article/details/83144239