查询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 相关文章推荐
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
写出更好的JavaScript之undefined篇(上)
Nov 22 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
js修改input的type属性问题探讨
Oct 12 Javascript
js判断上传文件类型判断FileUpload文件类型代码
May 20 Javascript
JS获得图片alt信息的方法
Apr 01 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
xmlplus组件设计系列之树(Tree)(9)
May 02 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
vue 本地环境跨域请求proxyTable的方法
Sep 19 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
深入了解Vue3模板编译原理
Nov 19 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生成月历代码
2007/06/14 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
python安装pil库方法及代码
2019/06/25 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
大学军训感言300字
2014/03/09 职场文书
广告创意求职信
2014/03/17 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2015年度物流工作总结
2015/04/30 职场文书
酒店员工管理制度
2015/08/05 职场文书
环保建议书作文500字
2015/09/14 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
图神经网络GNN算法
2022/05/11 Python