查询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中eval函数用法分析
Apr 25 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
使用vue.js制作分页组件
Jun 27 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
Mar 16 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
Jan 08 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
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 $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
JavaScript表单常用验证集合
2008/01/16 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python3实现短网址和数字相互转换的方法
2015/04/28 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
如何执行一个shell程序
2012/11/23 面试题
高校教师自荐信范文
2014/03/13 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
python实现商品进销存管理系统
2022/05/30 Python