查询json的数据结构的8种方式介绍

 你有没有对“在复杂的JSON数据结构中查找匹配内容”而烦恼,这篇文章介绍了查询json的数据结构的8种方式,总有一个适合你项目使用的方法

查询json的数据结构的8种方式:
 
JsonSQL
 
JsonSQL实现了使用SQL select语句在json数据结构中查询的功能。主页:http://www.trentrichardson.com/jsonsql/
 
例子:
 
 代码如下:
jsonsql.query("select * from json.channel.items order by title desc",json);
 
 
JSONPath
 
JSONPath就像是针对JSON数据结构的XPath。主页:http://goessner.net/articles/JsonPath/
 
例子:
 
代码如下:
jsonPath( books, '$..book[(@.length-1)]')
 
 
jfunk
 
jFunk允许你检索(很快会加入管理功能)复杂的JSON或Javascript对象。jFunk API的设计几乎与jQuery API类似。它直接复制了jQuery的API,除了那些针对DOM的API。
 
例子:
 
 代码如下:
Jf("> vegetables > *[color=Orange]",Food).get();
 
 
TaffyDB
 
你过去有没有注意到Javascript对象的字面值看起来很像记录?如果你把他们包裹在一个数组里面,那么它们看起来有没有像一个数据库表?TaffyDB是一个Javascript库,它提供了强大的数据库功能以实现之前的想法,大大改善了你在Javascript中使用数据的方式。
 
例子:
 
 代码如下:
var kelly = friends({id:2}).first();
 
 
linq.js
 
linq.js——Javascript中的LINQ
代码如下:
var queryResult2 = Enumerable.From(jsonArray)
    .Where("$.user.id < 200")
    .OrderBy("$.user.screen_name")
    .Select("$.user.screen_name + ':' + $.text")
    .ToArray();
 
 
objeq
 
objeq是一个简单的库,实现了对POJSO(Plain-Old JavaScript Objects,普通的Javascript对象)的实时查询。主页:https://github.com/agilosoftware/objeq
 
 代码如下:
var res = $objeq(data, "age > 40 && gender == 'female' -> name");
// --> Returns ['Jessica']
 
(译注:它使用了Javascript的property setters,所以它只能工作在较新的浏览器上)
 
json:select()
 
使用类CSS选择符来查询JSON。主页:http://jsonselect.org/#tryit
 
 代码如下:
.lang:val("Bulgarian") ~ .level
 
 
Paul的编程珠玑中的Javascript数组过滤方法,主页:http://www.paulfree.com/28/javascript-array-filtering/#more-28
 
 代码如下:
var a = [1,2,3,4,5,6,7,8,9,10];
 // return everything
a.where( "( ) => true" ) ;
//  --> [1,2,3,4,5,6,7,8,9,10]
// return even numbers
a.where( "( n, i ) => n % 2 == 0" ) ;
//  --> [2,4,6,8,10]
// query first 6 products whose category begins with 'con' using extra param and regular expression
products.where( "( el, i, res, param ) => res.length <= 6 && param.test( el.cat )", /^con/i);
// using customer table data from SQL Server's northwind database...    
customers.where( "( el, i, res, param ) => el.country == param", "USA" );
 
 
目前这是我最喜欢的查询JSON数据结构的方法。它非常的简单,并且据作者所说它非常快。
它背后的理念和John Resig的JavaScript Micro-Templating类似:使用正确表达式将一段非常简单的字符串转换成Javascript函数。
当然,还有更多强大的解决方案。Paul实现的原型还缺少对过滤表达式的语法检查,但是我相信你应该可以自己解决Javscript的语法检查。
 

时间: 2024-10-03 11:36:56

查询json的数据结构的8种方式介绍的相关文章

查询json的数据结构的8种方式简介_基础知识

查询json的数据结构的8种方式: JsonSQL JsonSQL实现了使用SQL select语句在json数据结构中查询的功能.主页:http://www.trentrichardson.com/jsonsql/ 例子: 复制代码 代码如下: jsonsql.query("select * from json.channel.items order by title desc",json); JSONPath JSONPath就像是针对JSON数据结构的XPath.主页:http:

Javascript调用函数方法的几种方式介绍

 这篇文章主要介绍了Javascript调用函数方法的几种方式介绍,本文讲解了func().(function(arg){})(window).func.bind(sth)().func.call().func.apply()等5种方式,需要的朋友可以参考下     javascript语法灵活,同一个功能有五六种实现方式并不罕见,然后再加上有些反人类的原型继承和异步特性,就更让人一头雾水了.我经常搞不清楚call,apply之间的区别,今天就记录一下,以免再忘了. 在javascript中,方

jQuery绑定事件的四种方式介绍_jquery

jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪些. jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(type,[data],function(eventObject)) bind是使用频率较高的一

在JS中将JSON的字符串解析成JSON数据格式一般有两种方式

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先

PHP实现加密的几种方式介绍

 这篇文章主要介绍了PHP实现加密的几种方式,非常全面实用,都是项目中经常需要用到的,需要的朋友可以参考下     PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回. 这是一种不可逆加密,执行如下的代码 $pas

JS获取html对象的几种方式介绍

 这篇文章主要介绍了JS获取html对象的几种方式,有需要的朋友可以参考一下 document.getElementById("zx");   通过ID获取html元素对象,ID号在html文档当中应该是唯一的.返回的是唯一element对象.并且所有浏览器都兼容.   document.getElementsByTagName("span")[0];   通过标签查找html对象,由于html标签在一个页面中可能重复很多次,所以当前页面返回的是一个数组.可以根据标

Jquery 获取对象的几种方式介绍

  本文为大家介绍下Jquery如何获取对象有哪几种方式,感兴趣的朋友可以参考下 1.JQuery的核心的一些方法 each(callback) '就像循环 $("Element").length; '元素的个数,是个属性 $("Element").size(); '也是元素的个数,不过带括号是个方法 $("Element").get(); '某个元素在页面中的集合,以数组的形式存储 $("Element").get(inde

JDBC连接Access数据库的几种方式介绍_JSP编程

接下来总结一下常用的几种连接方式. 例如有如下的Access数据库student,表basic,以及6条记录,现在通过几种方式在Jsp中将他们的数据显示出来.如图所示: 对于几种连接Access数据库的方式,基本上都是基于JDBC-ODBC方式的,当然也有纯JDBC驱动的方式.这里我暂时就不说了.对于这几种方式,除了取得连接之处不同外,其他的代码都是一样的.所以这里先写出取得连接的几种方式,然后再用完整的代码进行显示. 方式一:通过JDBC-ODBC方式桥连直接连接: 1.对于这种方式,首先要建

Javascript调用函数方法的几种方式介绍_javascript技巧

javascript语法灵活,同一个功能有五六种实现方式并不罕见,然后再加上有些反人类的原型继承和异步特性,就更让人一头雾水了.我经常搞不清楚call,apply之间的区别,今天就记录一下,以免再忘了. 在javascript中,方法可以通过以下几种方式执行: 1.func(),这是最直接最常见的调用方式,也符合一般人的思维逻辑,但是在某些情况下有一些不足,下面会解释. 2.(function(arg){})(window),匿名方法调用,在构造命名空间时比较有用,后面的括号中的参数与匿名方法中