查询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 相关文章推荐
js判断元素是否隐藏的方法
Jun 09 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
jquery实现左右滑动式轮播图
Mar 02 Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
js的新生代垃圾回收知识点总结
Aug 22 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
js代码实现轮播图
May 04 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
基于mysql的论坛(6)
2006/10/09 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
php创建session的方法实例详解
2015/01/27 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
php的常量和变量实例详解
2017/06/27 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
jquery div 居中技巧应用介绍
2012/11/24 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue-cli配置环境变量的方法
2018/07/09 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Python使用configparser库读取配置文件
2020/02/22 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
中学生期末评语
2014/02/03 职场文书
银行简历自我评价
2014/02/11 职场文书
学校安全责任书范本
2014/07/23 职场文书
教育读书笔记
2015/07/02 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android
Golang实现可重入锁的示例代码
2022/05/25 Golang