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


Posted in Javascript onMarch 10, 2014

查询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。
主页:http://code.google.com/p/jfunk/

例子:

Jf("> vegetables > *[color=Orange]",Food).get();

TaffyDB

你过去有没有注意到Javascript对象的字面值看起来很像记录?如果你把他们包裹在一个数组里面,那么它们看起来有没有像一个数据库表?TaffyDB是一个Javascript库,它提供了强大的数据库功能以实现之前的想法,大大改善了你在Javascript中使用数据的方式。
主页:http://www.taffydb.com/

例子:

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的语法检查。

Javascript 相关文章推荐
javascript 出生日期和身份证判断大全
Nov 13 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
Mar 04 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
AngularJS中$watch和$timeout的使用示例
Sep 20 Javascript
javascript表单正则应用
Feb 04 Javascript
分享十三个最佳JavaScript数据网格库
Apr 07 Javascript
checkbox在vue中的用法小结
Nov 13 Javascript
Vue代码整洁之去重方法整理
Aug 06 Javascript
Layui 解决表格异步调用后台分页的问题
Oct 26 Javascript
js 3秒后跳转页面的实现代码
Mar 10 #Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 #Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 #Javascript
使用js操作css实现js改变背景图片示例
Mar 10 #Javascript
红米手机抢购的js代码
Mar 10 #Javascript
按下回车键指向下一个位置的一个函数代码
Mar 10 #Javascript
用js判断输入是否为中文的函数
Mar 10 #Javascript
You might like
用PHP发电子邮件
2006/10/09 PHP
PHP新手上路(八)
2006/10/09 PHP
php自动跳转中英文页面
2008/07/29 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
javascript 写类方式之九
2009/07/05 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
横向对比分析Python解析XML的四种方式
2016/03/30 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
企业行政文员岗位职责
2013/12/03 职场文书
个人自荐信
2013/12/05 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android