jsonsql

WebJar for jsonsql

Лицензия

Лицензия

MIT
Категории

Категории

JSON Данные
Группа

Группа

org.webjars.npm
Идентификатор

Идентификатор

jsonsql
Последняя версия

Последняя версия

0.2.5
Дата

Дата

Тип

Тип

jar
Описание

Описание

jsonsql
WebJar for jsonsql
Ссылка на сайт

Ссылка на сайт

http://webjars.org
Система контроля версий

Система контроля версий

https://github.com/rockdragon/jsonSQL

Скачать jsonsql

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.webjars.npm/jsonsql/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>jsonsql</artifactId>
    <version>0.2.5</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/jsonsql/
implementation 'org.webjars.npm:jsonsql:0.2.5'
// https://jarcasting.com/artifacts/org.webjars.npm/jsonsql/
implementation ("org.webjars.npm:jsonsql:0.2.5")
'org.webjars.npm:jsonsql:jar:0.2.5'
<dependency org="org.webjars.npm" name="jsonsql" rev="0.2.5">
  <artifact name="jsonsql" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='jsonsql', version='0.2.5')
)
libraryDependencies += "org.webjars.npm" % "jsonsql" % "0.2.5"
[org.webjars.npm/jsonsql "0.2.5"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

jsonSQL

npm version

A SQL-like query language for JSON objects.

Install

npm install jsonsql

Semantics

  • All Fields *
  • Result Subset *.second_lvl.third_lvl
  • Condition where
  • AND &&
  • OR ||
  • Group ()
  • Equal =
  • Not Equal !=
  • Like ~
  • Not Like !~

Generic query

Data Source:
var dataSource = {
    '4866102f06de4f38bc30592e001cf423': {
        beat: {},
        holy: {addr: '88:63:df:a0:d7:03', name: 'CREEPY'},
        user: '',
        config: {},
        id: '4866102f06de4f38bc30592e001cf423',
        state: 2
    },
    'd07872f7d2e8447bbe874bbfd3fb0296': {
        beat: {},
        holy: {
            addr: '5c:51:4f:50:3a:88',
            name: 'CREEPY'
        },
        user: '',
        config: {},
        id: 'd07872f7d2e8447bbe874bbfd3fb0296',
        state: 1
    },
    'f2de1084a1f142258d5849428f09e39f': {
        beat: {},
        holy: {
            addr: '77:32:8a:c5:dd:63',
            name: 'REDSHIT'
        },
        user: '',
        config: {},
        id: 'f2de1084a1f142258d5849428f09e39f',
        state: 0,
        date: '2012-05'
    },
    'cff9580b2efa4a2ba84784c1ac80eb09': {
        beat: {},
        holy: {
            addr: '7f:e8:ee:32:cd:15',
            name: 'CRAP'
        },
        user: '',
        config: {},
        id: 'cff9580b2efa4a2ba84784c1ac80eb09',
        state: 1
    }
};  

Query with condition:

var Query = require('jsonSQL');
var res = Query(dataSource, '* where holy.name=CRAP || (holy.name=CREEPY && (state=1 || state=2))');
console.log('======RESULT 1\n',res);
RESULT OUTPUT:
======RESULT 1
 [ { beat: {},
    holy: { addr: '88:63:df:a0:d7:03', name: 'CREEPY' },
    user: '',
    config: {},
    id: '4866102f06de4f38bc30592e001cf423',
    state: 2 },
  { beat: {},
    holy: { addr: '5c:51:4f:50:3a:88', name: 'CREEPY' },
    user: '',
    config: {},
    id: 'd07872f7d2e8447bbe874bbfd3fb0296',
    state: 1 },
  { beat: {},
    holy: { addr: '7f:e8:ee:32:cd:15', name: 'CRAP' },
    user: '',
    config: {},
    id: 'cff9580b2efa4a2ba84784c1ac80eb09',
    state: 1 } ]

Multi-Fields Query:

var res = Query(dataSource, '*.id, *.holy.addr where holy.name=CRAP');
console.log('======RESULT 2\n',res);
RESULT OUTPUT:
======RESULT 2
 [ { id: 'cff9580b2efa4a2ba84784c1ac80eb09',
    'holy.addr': '7f:e8:ee:32:cd:15' } ]

Comparsion

Data Source:
var dataSource = {
  '4866102f06de4f38bc30592e001cf423': {
    name: 'Tom',
    age: 33,
    birth: new Date(2016, 1, 1)
  },
  'd07872f7d2e8447bbe874bbfd3fb0296': {
    name: 'Jack',
    age: 18,
    birth: new Date(2015, 1, 1)
  },
  'd935869b80f542a9bf3f6a59d4f635f1': {
    name: 'Peter',
    age: 26,
    birth: new Date(2014, 1, 1)
  },
};

Number comparison:

var Query = require('jsonSQL');
var res = Query(dataSource, '* where age<=30');
console.log('======RESULT 1\n',res);
RESULT OUTPUT:
======RESULT 1
 [ { name: 'Jack',
    age: 18,
    birth: Sun Feb 01 2015 00:00:00 GMT+0800 (CST) },
  { name: 'Peter',
    age: 26,
    birth: Sat Feb 01 2014 00:00:00 GMT+0800 (CST) } ]
Date comparison:
var Query = require('jsonSQL');
var res = Query(dataSource, '* where birth>' + new Date(2015,1,1).valueOf());
console.log('======RESULT 2\n',res);
RESULT OUTPUT:
======RESULT 2
 [ { name: 'Tom',
    age: 33,
    birth: Mon Feb 01 2016 00:00:00 GMT+0800 (CST) } ]

Date string comparison:

Data Source:
var dataSource = [
  {
    "Version": "120",
    "CreateDate": "2013-05-25T06:50:25.584Z",
    "Desc": "abcdef"
  },
  {
    "Version": "121",
    "CreateDate": "2014-05-23T06:50:25.584Z",
    "Desc": "dfdsf"
  },
  {
    "Version": "122",
    "CreateDate": "2015-05-26T06:50:25.584Z",
    "Desc": "qewert"
  },
  {
    "Version": "123",
    "CreateDate": "2016-05-24T06:50:25.584Z",
    "Desc": "xfsstd"
  }
];
query:
var Query = require('jsonSQL');
var res = Query(dataSource, '* where CreateDate>' + new Date(2014,1,1).valueOf());
console.log('======RESULT 1\n',res);
RESULT OUTPUT:
======RESULT 1
 [ { Version: '121',
    CreateDate: '2014-05-23T06:50:25.584Z',
    Desc: 'dfdsf' },
  { Version: '122',
    CreateDate: '2015-05-26T06:50:25.584Z',
    Desc: 'qewert' },
  { Version: '123',
    CreateDate: '2016-05-24T06:50:25.584Z',
    Desc: 'xfsstd' } ]

Версии библиотеки

Версия
0.2.5