引言

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

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

Linq to Json

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

创建json数组和对象

一些相关的类:

创建Json对象

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

  1. JObject person = new JObject();
  2. person.Add(new JProperty("Name", "Wolfy"));
  3. person.Add(new JProperty("Age", ));
  4. person.Add("Leader", new JObject(new JProperty("Name", "老大"), new JProperty("Age", ), new JProperty("Leader", null)));
  5. Console.WriteLine(person.ToString());
  6. Console.Read();

结果:

JObject.JArray数组

测试

  1. JArray arr = new JArray();
  2. arr.Add(new JValue());
  3. arr.Add(new JValue());
  4. arr.Add(new JValue());
  5. Console.WriteLine(arr.ToString());

结果:

Linq to Json

查询

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

结果:

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

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

结果:

简化查询

查询所有同事的姓名:

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

结果:

修改

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

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

结果:

修改同事Tom的年龄:

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

结果:

删除

删除wolfy的同事:

  1. //将json转换为JObject
  2. JObject jobj = JObject.Parse(json);
  3. jobj.Remove("Colleagues");
  4. 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. Linux系统之压缩、解压缩,vi编辑器,系统初始化服务和系统监控

    一.正文处理,压缩与解压缩 1.内容重定向>与>> >:覆盖,将>号左边的结果覆盖到>号右边的文件中,如果文件不存在,则先创建一个新的空文件并覆盖 >> ...

  2. PHPCMS列表页伪静态

    phpcms v9内容管理系统可以方便建立网站,并且生成静态化,但是列表页往往采取伪静态,因为列表页太多每发一篇文章就生成一遍静态效率太低,phpcms列表页及分页伪静态规则如何设置呢? phpcms ...

  3. 技巧:利用 Workflow 显示附近的免费 Wi-Fi

    得益于 Workflow 自 1.5.3 版本起更新的 Get Content of URL 动作,该 App 的潜力得到了极大的提升.本文分享一种有趣的用法,搜寻附近的免费 Wi-Fi 并择一显示在 ...

  4. docker containerd shim分析

    // containerd-shim is a small shim that sits in front of a runtime implementation that allows it to ...

  5. 2016"百度之星"-资格赛

    //本题要求:(Ar*A2...An)%p,亦即[(A1*A2*...An)/(A1*A2*...Ar-1)]%p,由于A1*A2...An乘积过大,无法求得相除所得的结果 //我们需要用到乘法逆元( ...

  6. C#泛型简化代码量示例

    泛型简化代码量 下是我在项目中通过泛型来简化工作的一个Demo,记录一下: using System; using System.Collections.Generic;   namespace My ...

  7. 移动App崩溃测试用例设计

    我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题.根据最近的调查研究,用户难以容忍有bug的移动App. 移动App Bug的影响是用户体验差.A ...

  8. 准备写一些读书笔记,最近在填坑 SQL学习指南 Spring in Action effective Java

    把一些读书的理解通过白板图的形式展示出来,加深自己的认识, 因为目前没有工程项目练手,暂时在学习中把这些知识深化认识一下

  9. pedestal-工作记

    1.基于bootstrap-v3和flat-ui-v3为第十届外语活动月写了个页面 http://www.pedestal.cn/static/activity/index.html 2.资料 boo ...

  10. KVM虚拟机网络基础及优化说明

    一个完整的数据包从虚拟机到物理机的路径是: 虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡 KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领 ...