ASP.NET使用 json Newtonsoft.Json.Linq C# 完整教程
开始
Newtonsoft.Json使用方法
Newtonsoft.Json.dll下载地址:https://github.com/JamesNK/Newtonsoft.Json/releases
或者直接在百度搜索“Newtonsoft.Json”,还可以直接在VS201X Nuget中直接安装
找到项目,在引用这里先添加下载的dll
引用完毕后再cs中使用它
using Newtonsoft.Json.Linq;
先解一下json的结构
先对json有一个小小的认识
C#中的json可以为单引号,输出会自动转换成双引号
{
'text': {
'id': '1251',
'name': '阿巴阿巴',
'url': 'www.csdn.net',
'PersonalInformation': [],
'deletejson': '测试删除'
},'username':'admin',
'passwoed':'admin123456'
}
{
"text": {
"id": "1251",
"id_name": "md5(csdnid)",
"name": "阿巴阿巴测试",
"url": "www.csdn.net",
"PersonalInformation": [
{
"chinese": "85",
"mathematics": "90",
"English": "98",
"Chemistry": "82",
"Sports": "96",
"SchoolReport": {
"chat": "13456789",
"phon": "12345678",
"qqid": "14567890"
}
},
"retain1",
"retain2"
],
"textkey": "245153252121214"
},
"username": "woaini",
"passwoed": "admin123456",
"userkey": "12123435412345"
}
从上面我们可以看到这个json包含了很多种类型 称之为 多维数组json
接下来上C#源代码
using Newtonsoft.Json.Linq;
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string demojson = @"{
'text': {
'id': '1251',
'name': '阿巴阿巴',
'url': 'www.csdn.net',
'PersonalInformation': [],
'deletejson': '测试删除'
},'username':'admin',
'passwoed':'admin123456'
}";
JObject rss = JObject.Parse(demojson);
JObject duoweijson = (JObject)rss["text"];
duoweijson["name"] = duoweijson["name"] +"测试";//对指定的键值进行修改
rss["username"] = "woaini";//对指定的键值进行修改
duoweijson.Property("deletejson").Remove();//删除指定的json键值
duoweijson.Property("id").AddAfterSelf(new JProperty("id_name", "md5(csdnid)"));//在指定的键值下面添加新的键值
JArray subject = (JArray)duoweijson["PersonalInformation"];//获得指定的数组位置
subject.Add(GetObj()); //写入指定的数组值
subject.Add("retain1");//写入数组key值
subject.Add("retain2");//写入数组key值
duoweijson.Add("textkey","245153252121214");//JObject 类型的插入数据 对应解析json的text节点尾部追加
rss.Add("userkey", "12123435412345"); //JObject 类型的插入数据 对解析后的json的尾部追加
Console.WriteLine( rss.ToString());//输出json
Console.WriteLine("按任意键继续...");
Console.ReadKey();
JObject GetObj() //GetObj方法
{
JObject obj = new JObject();
obj.Add("chinese", "85");
obj.Add("mathematics", "90");
obj.Add("English", "98");
obj.Add("Chemistry", "82");
obj.Add("Sports", "96");
JObject cate = new JObject();
cate.Add("chat", "13456789");
cate.Add("phon", "12345678");
cate.Add("qqid", "14567890");
obj.Add("SchoolReport", cate);
return obj;
}
}
}
}
结果演示
注意JObject和JArray的类型
以上就是不使用类命名的json操作
结束