Jquery 实现json复杂查询等操作(jsonDB)

一、jsonDB

下载地址:https://github.com/ThinkerCodeChina/jsonDB

jsonDB是js的一个类库,实现使用SQL语句对json数据增删改查。
jsonDB的构建源自于HTML5本地存储的一个应用需求,可以通过sql对json数据进行增删改查,同时该类库提供强大的where检索条件,数据排序,limit查询条件限制等数据库基本功能。
通过jsonDB可以轻松维护一个库/表或多个库/表,而无需额外实现json的数据的维护等,在该类库完善以后为简化sql操作,基于jsonDB核心模块扩展了连贯操作模型,简化对jsonDB的操作以及sql语句出错的概率。

二、当前版本的不足:

1.无法支持查询字段运算
2.不支持对没有选取的查询字段排序
3.只支持单个字段排序,无法进行组合排序操作
4.update、delete语句不支持order by子句,导致limit子句功能弱化
5.编写where条件是必须使用()包含where条件
6.无法选取深层次的字段作为返回字段
7.没有错误或异常解决方案
8.不支持外部扩展 

三、jsonDB基础应用示例:

 1 //创建一张user数据表,并定义一个DB的jsonDB别名
 2 var data = [{username:‘张三‘,sex:‘男‘,birthday:{year:2000,month:6,day:18}},{username:‘李红‘,sex:‘女‘,birthday:{year:1986,month:9,day:22}}];
 3 //以下方法可以通过两种方式获取别名,一个是通过init方法获取(推荐),一个是获取jsonDB()方法的返回值
 4 //以后示例中都将使用init()方法创建的别名操作数据
 5 var jDB = jsonDB(data,‘user‘).init(‘DB‘);
 6
 7 //插入一条新的数据
 8 data = {username:‘李想‘,sex:‘男‘,birthday:{year:1990,month:2,day:15}};
 9 DB.insert(data,‘user‘);
10
11 //查询姓名为李红的性别,where条件必须加()否者会出现错误
12 var result =DB.query(‘select sex from user where (username="李红")‘);
13 //结果:[{"sex":"女"}]
14
15 //查询2000年之前出生的且按出生年先后排序
16 var result =DB.query(‘select * from user where (birthday.year<2000) order by birthday.year asc‘);
17 //结果:[{"username":"李红","sex":"女","birthday":{"year":1986,"month":9,"day":22}},{"username":"李想","sex":"男","birthday":{"year":1990,"month":2,"day":15}}]
18
19 //查询年龄最小的两个人
20 var result =DB.query(‘select * from user order by birthday.year desc limit 2‘);
21 //查询结果:[{"username":"张三","sex":"男","birthday":{"year":2000,"month":6,"day":18}},{"username":"李想","sex":"男","birthday":{"year":1990,"month":2,"day":15}}]
22
23 //修改李红的出生日期
24 var result =DB.query(‘update user set birthday.year=1991 where (username="李红") limit 1‘);
25 //影响条数为一条,可以通过DB.findAll(‘user‘)获取全部数据查看是否被修改成功
26
27 //删除姓名为李想的数据
28 var result =DB.query(‘delete from user where (username="李想") limit 1‘);
29 //影响条数为一条,可以通过DB.findAll(‘user‘)获取全部数据查看是否被删除成功
30
31 //数据库中所有数据
32 //[{"username":"张三","sex":"男","birthday":{"year":2000,"month":6,"day":18}},{"username":"李红","sex":"女","birthday":{"year":1991,"month":9,"day":22}}] 

四、jsonDB的高级应用示例:

 1 //向数据表插入一条数据
 2 DB.table(‘user‘).add({username:‘王帅‘,sex:‘男‘,birthday:{year:1995,month:10,day:23}});
 3
 4 //查询所有人出生日期,并按出生年排序,由于之前使用table(‘user‘)定义为user表,所以可以省略,table方法定义是一直有效的,除非是重新设定了
 5 var result = DB.field(‘username,birthday‘).order(‘birthday.year‘).select();
 6 //查询结果  [{"username":"李红","birthday":{"year":1991,"month":9,"day":22}},{"username":"王帅","birthday":{"year":1995,"month":10,"day":23}},{"username":"张三","birthday":{"year":2000,"month":6,"day":18}}]
 7
 8 //先插入一些数据,方便后面的检索操作
 9 DB.table(‘user‘).add({username:‘李亨‘,sex:‘男‘,birthday:{year:2008,month:8,day:8}})
10 .add({username:‘张琦‘,sex:‘男‘,birthday:{year:1990,month:10,day:23}})
11 .add({username:‘李媛芳‘,sex:‘女‘,birthday:{year:1985,month:2,day:28}})
12 .add({username:‘李果果‘,sex:‘女‘,birthday:{year:2002,month:3,day:15}})
13 .add({username:‘张源‘,sex:‘男‘,birthday:{year:2005,month:12,day:5}})
14 .add({username:‘王丽娜‘,sex:‘女‘,birthday:{year:1992,month:5,day:12}});
15
16 //高级查询之模糊搜索
17 //查询所有李姓成员(正则查找法)
18 var result = DB.field(["username"]).where(‘username.match(/^李/)‘).select();
19 //查询结果[{"username":"李红"},{"username":"李亨"},{"username":"李媛芳"},{"username":"李果果"}]
20
21 //查询所有李姓成员(字符串搜索法)
22 var result = DB.field(["username"]).where(‘username.indexOf("李")=0‘).select();
23 //查询结果[{"username":"李红"},{"username":"李亨"},{"username":"李媛芳"},{"username":"李果果"}]
24
25 //查询所有在1990年到1995年出生的人
26 var result = DB.field(["username","birthday"]).where(‘birthday.year>=1990 and birthday.year<=1995‘).order(‘birthday.year‘).select();
27 //查询结果:[{"username":"张琦","birthday":{"year":1990,"month":10,"day":23}},{"username":"李红","birthday":{"year":1991,"month":9,"day":22}},{"username":"王丽娜","birthday":{"year":1992,"month":5,"day":12}},{"username":"王帅","birthday":{"year":1995,"month":10,"day":23}}]
时间: 2024-10-11 07:02:02

Jquery 实现json复杂查询等操作(jsonDB)的相关文章

jquery下json数组的操作用法实例

jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像JSON数据是以数组的形式出现的,下面是一些实例,仅供参考. 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

jQuery获取json数据实现代码

jQuery获取json数据实现代码:使用jQuery操作json数据是非常的频繁的,下面提供两端代码供大家参考之用,大家可以自行分析,以便灵活应用. /栏目 //发送ajax请求 $.getJSON( "../../../Templet/GetInfoHandler.ashx", //产生JSON数据的服务端页面 {id: "0", sid: "1;2;3", rid: Math.round(Math.random() * 10) }, //向

php+jquery+ajax+json简单小例子

直接贴代码: Php代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Content-Type:text/html;charset=utf-8"); ?> <head> <script type="text/javascript" src="http://code.jquery.com/jquery.min.j

JQuery处理json与ajax返回JSON实例[转]

json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]. 很多情况下是对象数组,那就是这样:  代码如下

JQuery以JSON方式提交数据到服务端

JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多.以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面的代码演示了如何将客户端表单数据封装成JSON格式,然后通过JQuery的Ajax请求将数据发送到服务端,并最终将数据存储到数据库中.服务端定义为一个.ashx文件,事实上你可以将服务端定义为任何能接收并处理客户端数据的类型,如Web Service,ASP.NET Page,Handler等. 首

[转]jquery 对 Json 的各种遍历

原文地址:http://caibaojian.com/jquery-each-json.html 概述 JSON(javascript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在JSON中,有两种结构:对象和数组. 1.对象 一个对象以“{”开始,“}”结束.每个“key”后跟一“:

jquery 对 Json 的各种遍历

概述 JSON(javascript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在JSON中,有两种结构:对象和数组. 1.对象 一个对象以“{”开始,“}”结束.每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔. packJson = {"name&qu

jquery解析json格式数据的方法(对象、字符串)

相关函数 函数 描述 JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象. JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串. //data为字符串类型 则要将字符串类型转换成json数据类型 var jsondatas=eval("("+data+")"); 本文实例讲述了jquery解析json格式数据的方法.分享给大家供大家参考,具体如下: json数据是我们常用的一种小型的数据实

(转)JQuery处理json与ajax返回JSON实例

son数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]. 很多情况下是对象数组,那就是这样:  代码如下 复