示例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添加
通过调用JObject
的Add
方法进行添加,
传入参数(键名,JToken
对象)
默认添加到json的末端
JToken
对象可由JObject
转换为
json删除
通过调用JObject
的Remove
方法进行删除
传入参数键名
json修改
使用=
可重新赋值
jo["name"] = "新名字";
所赋值可以是string
,int
,boolean
,JToken
,JObject
.
创建一个空("{ }
")的JObject
对象,通过一定的顺序和方法,将原jo中的数据赋值到空JObject
,可以实现增删排序等效果.
JSON中JObject
和JArray
的修改
一、JObject
和JArray
的添加、修改、移除
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.运行的结果