引言

上篇学习了json.net的基本知识,这篇学习linq to json。

上篇文章:[Json.net]快速入门

Linq to Json

Linq to Json是用来快速操作json对象的,包括:查询,修改和创建操作。

创建json数组和对象

一些相关的类:

创建Json对象

引入命名空间:using Newtonsoft.Json.Linq;

             JObject person = new JObject();
person.Add(new JProperty("Name", "Wolfy"));
person.Add(new JProperty("Age", ));
person.Add("Leader", new JObject(new JProperty("Name", "老大"), new JProperty("Age", ), new JProperty("Leader", null)));
Console.WriteLine(person.ToString());
Console.Read();

结果:

JObject.JArray数组

测试

             JArray arr = new JArray();
arr.Add(new JValue());
arr.Add(new JValue());
arr.Add(new JValue());
Console.WriteLine(arr.ToString());

结果:

Linq to Json

查询

             string json = "{\"Name\":\"wolfy\",\"Age\":25,\"Colleagues\":[{\"Name\":\"Tom\",\"Age\":24},{\"Name\":\"Jack\",\"Age\":22}]}";
//将json转换为JObject
JObject jobj = JObject.Parse(json);
//通过属性名或者索引来访问,仅仅是自己的属性没,而不是所有的
JToken ageToken = jobj["Age"];
Console.WriteLine(ageToken.ToString());

结果:

获取该员工的所有同事的所有姓名:

             var names = from n in jobj["Colleagues"].Children()
select (string)n["Name"];
foreach (var item in names)
{
Console.WriteLine(item);
}

结果:

简化查询

查询所有同事的姓名:

            var names = jobj.SelectToken("Colleagues").Select(p => p["Name"]).ToList();
foreach (var item in names)
{
Console.WriteLine(item);
}

结果:

修改

修改json字符串中名字为Wolfy的年龄:

  JObject jobj = JObject.Parse(json);
jobj["Age"] = ;
Console.WriteLine(jobj.ToString());

结果:

修改同事Tom的年龄:

           JToken colleagues = jobj["Colleagues"];
colleagues[]["Age"] = ;
//修改后再赋给对象
jobj["Colleagues"] = colleagues;
Console.WriteLine(jobj.ToString());

结果:

删除

删除wolfy的同事:

             //将json转换为JObject
JObject jobj = JObject.Parse(json);
jobj.Remove("Colleagues");
Console.WriteLine(jobj.ToString());

结果:

总结

Linq to json的学习就到这里,从网上找了一篇文章,自己实践一下,多少还是有收获的。

参考

http://www.360doc.com/content/13/0328/22/11741424_274568564.shtml

[Json.net]Linq to Json的更多相关文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  2. Newtonsoft.json中 linq to json 和序列化哪个快?

    Newtonsoft.json是最常用的json序列化组件,当然他不是最快的,但是是功能最全的.. using System; using System.Collections.Generic; us ...

  3. 关于Newtonsoft.Json,LINQ to JSON的一个小demo

    nuget获取Newtonsoft.Json github地址:Newtonsoft.Json public static void Test1() { /* 文本格式如下 代码实现目的: 1.VR ...

  4. Linq to json

    Json.Net系列教程 4.Linq To JSON 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JS ...

  5. 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

    转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...

  6. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  7. Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json

    原文:http://www.cnblogs.com/chsword/archive/2008/09/19/Newtonsoft_new_3_0.html http://www.cnblogs.com/ ...

  8. 一.Linq to JSON是用来干什么的?

    Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和 ...

  9. Json.Net系列教程 4.Linq To JSON

    原文 Json.Net系列教程 4.Linq To JSON 更改历史 2013-05-31 添加一个FAQ   一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSO ...

随机推荐

  1. c#MD5珍藏

    c#MD5珍藏 using System; using System.Collections.Generic; using System.Text; namespace MD5 { public cl ...

  2. redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

  3. Sample SecondarySort 浅析

    示例文件: 100 99 100 98 100 56 100 78 20 100 30 100 20 50 30 50 30 60 20 80 需求:首先按第一个数字分组,组成按第二个数字排序. 解决 ...

  4. 译文 对无障碍网页应用(ARIA)的选择

    //本文编辑格式为Markdown,译文同时发布在众成翻译 对无障碍网页应用(ARIA)的选择 让网站对每个人都能访问是一件相当艰难的工作,尤其是在我们使用自定义标记解决方案(custom marku ...

  5. RPC(远程过程调用)的应用

    接触背景 因为工作上某项目的需要设计一种分布式处理耗时的运算,每个节点然后将运算结果返回给中心服务器,而最初未了解RPC这部分之前我的设计是在每一个RPC服务器上搭建一个webserver,然后部署运 ...

  6. css让浮动元素水平居中

    对于定宽的非浮动元素我们可以用 margin:0 auto; 进行水平居中. 对于不定宽的浮动元素我们也有一个常用的技巧解决它的水平居中问题.如下: HTML 代码: <div class=&q ...

  7. CSS强制性换行word-break与word-wrap的使用

    一般情况下,元素拥有默认的white-space:normal(自动换行,不换行是white-space:nowrap),当录入的文字超过定义的宽度后会自动换行,但当录入的数据是一堆没有空格的字符或字 ...

  8. Jenkins学习一:Jenkins是什么?

    文章转载:http://www.cnblogs.com/zz0412/tag/jenkins/default.html?page=1 第一章 Jenkins是什么? Jenkins 是一个可扩展的持续 ...

  9. localStorage实现购物车数量单价和结算页面的实时同步

    While there is life there is hope.一息若存,希望不灭 用localStorage实现简易的购物车数量单价和结算页面两个页面的实时同步: 购物车页面:实时更新页面,在i ...

  10. smarty模板继承