技术标签: SQL Server c#高级编程
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Json查询
{
class Program
{
static void Main(string[] args)
{
var input = @"
{ ""store"": {
""book"": [
{ ""category"": ""reference"",
""author"": ""Nigel Rees"",
""title"": ""Sayings of the Century"",
""price"": 8.95
},
{ ""category"": ""fiction"",
""author"": ""Evelyn Waugh"",
""title"": ""Sword of Honour"",
""price"": 12.99
},
{ ""category"": ""fiction"",
""author"": ""Herman Melville"",
""title"": ""Moby Dick"",
""isbn"": ""0-553-21311-3"",
""price"": 8.99
},
{ ""category"": ""fiction"",
""author"": ""J. R. R. Tolkien"",
""title"": ""The Lord of the Rings"",
""isbn"": ""0-395-19395-8""
}
],
""bicycle"": {
""color"": ""red"",
""price"": 19.95
}
}
}
";
var json = JObject.Parse(input);
//输出book[*]中category == 'reference'的book
var acme = json.SelectTokens("$.store.book[?(@.category == 'reference')]");
//输出book[*]中price>10的book
var acme2 = json.SelectTokens("$.store.book[?(@.price>10)]");
//输出book[*]中含有isbn元素的book
var acme3 = json.SelectTokens("$.store.book[?(@.isbn)]");
//输出该json中所有price的值
var acme4 = json.SelectTokens("$..price");
//可以提前编辑一个路径,并多次使用它
var stringpath =("$.store.book[*]");
Console.WriteLine(JsonConvert.SerializeObject(acme));
//var context = new JsonPathContext { ValueSystem = new JsonPathContext.BasicValueSystem() };
//var values = context.SelectNodes(json, "$.store.book[*].author").Select(node => node.Value);
//Console.WriteLine(JsonConvert.SerializeObject(values));
Console.ReadKey();
}
}
}
很多时候我们为了支持模型结构不变,而把一些变化的东西放入到一个JSON类型的字段当中。这样变化的字段就可以放入到同一个字段当中。而且Json的格式又可以很好的支持不同表关联关系。
虽然好处多多,但是查询匹配过滤就显得有些麻烦!
JSON字符串如何解析,如何写查询条件进行过滤呢?
这里有几种好理解的方案:
JsonSQL实现了使用SQL select语句在json数据结构中查询的功能。
例子:
1
|
jsonsql.query(
"select * from json.channel.items order by title desc"
,json);
|
主页:http://www.trentrichardson.com/jsonsql/
JSONPath就像是针对JSON数据结构的XPath。
例子:
1
|
jsonPath( books,
'$..book[(@.length-1)]'
)
|
主页:http://goessner.net/articles/JsonPath/
linq.js——Javascript中的LINQ(译者注:.Net中的概念,见http://msdn.microsoft.com/zh-tw/library/bb397897)
1
2
3
4
5
|
var
queryResult2 = Enumerable.From(jsonArray)
.Where(
"$.user.id < 200"
)
.OrderBy(
"$.user.screen_name"
)
.Select(
"$.user.screen_name + ':' + $.text"
)
.ToArray();
|
主页:http://linqjs.codeplex.com/
其实就是 “using Newtonsoft.Json;”。在.net中用来进行json序列化和反序列化的操作,原来其也有进行字符串查询的操作。
上面一开始举得例子中使用的就是这一方法。
Loading and storing80 LDB $X,$Y,$Z (load byte): s($X) ⟵ s(M1[A]).84 LDW $X,$Y,$Z (load wyde): s($X) ⟵ s(M2[A]).88 LDT $X,$Y,$Z (load tetra): s($X) ⟵ s(M4[A]).8C LDO $X,$Y,$Z (load octa): s($..._branch if positive
发布时间:2015-11-15COD5服务器里改名字颜色 改名字颜色方法1:1. 搜索config_mp.cfg 文件2. 用记事本打开该文件 搜索seta clanName ""3. 在&qu ...标签:使命召唤5:世界战争发布时间:2016-06-20使命召唤5专题: 改名字颜色方法1:1. 搜索config_mp.cfg 文件2. 用记事本打开该文件 搜索seta clanName..._更改op名字颜色
plc故障分为软件故障和硬件故障,电工学习网小编结合PLC系统现场故障处理实例,分享PLC故障维修经验,本文是PLC高手速成秘籍!! PLC主要由中央处理单元、输入接口、输出接口、通信接口等部分组成,其中CPU是PLC的核心,I/0部件是连接现场设备与CPU之间的接口电路,通信接口用于与编程器和上位机连接。对于整体式PLC,所有部件都装在同一机壳内;对于模块式PLC,各功能部件独立封装,称为模块或模板,各模块通过总线连接,安装在机架或导轨上。(初学者可以结合plc视频教程来学习) ._硬件组件已移除或缺失
TS流是基于Packet的位流格式,每个包是188个字节(或204个字节,在188个字节后加上了16字节的CRC校验数据,其他格式一样)。TS文件分为以下几层: 解释 TS流(Transport Stream) 传输流,将具有共同时间基准或独立时间基准的一个或多个PES组合(复合)而成的单一数据流(用于数据传输) PS流 节目流,将具有共同时间基准的一个或多..._ts describe
解决Github连接超时ideaclone failed: unable to access: failed to connect to github.com port 443: timedWIN+R弹出运行窗口后输入cmd在cmd中输入ping github.com,试试看能不能连通。或者在桌面上右键点击git bash here 输入ssh -T [email protected] 或者 ssh -V [email protected]..._idea提示update failed unable to access failed to connect to github.com port
企业级磁盘阵列一、 什么是磁盘阵列磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同 的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因 为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数_云计算为什么要用磁盘阵列
pad开发,有可能在fragment中添加viewpager,这样可以给viewpager添加样式_fragment style
Ubuntu下安装配置Honeyd蜜罐蜜罐概述蜜罐(Honeypot)是一种安全资源,其价值在于被探测、被攻击或者被攻陷。因此带有欺骗、诱捕性质的网络、主机、服务均可看成一个蜜罐。除了欺骗攻击者,蜜罐一般不支持其他正常的业务,因此任何访问蜜罐的行为都是可疑的,这是蜜罐工作的基本原理。虚拟蜜罐概述Honeyd是一款针对Unix系统设计的、开源、低交互程度的蜜罐,用于对可疑活动检测、捕获和预警。Honeyd能在往里冲次上模拟大量虚拟蜜罐,可用于模拟多个IP地址的情况。当攻击者企图访问时,Honeyd就会
最近,在一台服务器做了个应用部署,发现数据库实例能够通过Oracle 自带命令tnsping访问,如下所示C:\Documents and Settings\Administrator>tnsping testTNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 02-11月-2018 1...
最近设计一份毕业论文,想从正文开始插入页面,但是设置页码的时候封面和目录都显示了页码,本人花了一翻功夫才把目录与正文分开(一般封面与目录无需设置页码)。步骤如下:1、将光标移到正文第一个字符处,然后点击命令“页面布局->分隔符->分节符->下一页”,此处就把目录与正文分开,这是光标应在正文的第一行。2 、点正文第一页任意位置,然后点击命令“插入→页眉页脚→页码→设置页面格式”,设置你需要起始页从什么数字开始;再执行“插入->页眉页脚->页码-页面底端->普通数字3(此处根_word 批量添加页码 cdsn
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl_android sql server
1947 年,贝尔实验室科学家 \N John Bardeen,Walter Brattain,William Shockley。幸运的是,不久之后在 1906 年,美国发明家 "李·德富雷斯特"1947年9月,哈佛马克2型的操作员从故障继电器中,拔出一只死虫。他在"弗莱明"设计的两个电极之间,加入了第三个 "控制" 电极。在 1904 年,英国物理学家 "约翰·安布罗斯·弗莱明"图灵也在"布莱切利园"做了台机电装置,叫 "Bombe"它有一个50英尺的传动轴,由一个 5 马力的电机驱动。_bureaucracy 计算机