查询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 相关文章推荐
拉动滚动条加载数据的jquery代码
May 03 Javascript
解决IE6的PNG透明JS插件使用介绍
Apr 17 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
Jquery倒计时源码分享
May 16 Javascript
动态加载jQuery的方法
Jun 16 Javascript
浅谈jquery页面初始化的4种方式
Nov 27 Javascript
Jquery获取radio选中的值
May 05 jQuery
vue之浏览器存储方法封装实例
Mar 15 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
Element el-button 按钮组件的使用详解
Feb 01 Javascript
JS前端宏任务微任务及Event Loop使用详解
Jul 23 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循环获取GET和POST值的代码
2008/04/09 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
Python中单例模式总结
2018/02/20 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
python基于opencv 实现图像时钟
2021/01/04 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript