javascript - 我可以在 json 数据上使用 javascript 执行复杂的 SQL 样式查询吗?

标签 javascript jquery sql json

<分区>

我遇到了一个问题,我需要以一种方式操作 json 结果 我可以使用 sql 命令类型来操作它。

喜欢左连接、求和和分组

因此,你们中的任何人最近遇到过这种情况吗?

我目前正在使用/探索 jsonsql javascript.. 暂时 enter image description here

附件是我需要操作的json文件..

新的结果应该是这样的

enter image description here

所以我猜我需要使用左连接才能产生这种输出。

我的问题就像从行中收集所有/某些部分并将其设为一列 然后把它们放在一起???

我希望我说得有道理..感谢您的所有回复..

最佳答案

该语言为您提供了一些不错的功能,因此无需通过 JS 包装 SQL:

var data=[{"firstName":"Alice", "age":"16"},{"firstName":"Bob", "age":"18"} ... {"firstName":"Zacharias", "age":"37"}]

如果你想SELECT * FROM json WHERE age>16,你可以在 JS 中做一些等效的事情:

data.filter(function(x){ return x.age>16 })

如果你想SELECT count(*) FROM json你只需要写

data.length;

如果你想SELECT avg(age) FROM json你可以这样写

data.reduce(function(o,n){ return o+(n.age/data.length) }, 0)

如果你想SELECT sum(age) from json 你可以这样写

data.reduce(function(o,n){ return o+n.age*1 },0) 

那么为什么不使用,语言给了你什么?

编辑:我看到了,您指定了您的需求。究竟需要什么样的转变?我认为应该有一种 JS 方式来做你想做的事。

Edit2:对于表格表示,您必须对所有数据进行reduce。对于示例,我简化了一点:

var aaData=[{"country":"USA", "month":"1", "earnings":"1000"}, {"country":"USA", "month":"2", "earnings":"1001"},     {"country":"USA", "month":"3", "earnings":"1002"}, {"country":"Germany", "month":"1", "earnings":"1000"},     {"country":"Germany", "month":"2", "earnings":"1001"}, {"country":"Germany", "month":"3", "earnings":"1002"}]

var result=aaData.reduce(function(o, n){
    if (!o.hasOwnProperty(n.country)) o[n.country]={};
    o[n.country][n.month]=n.earnings;
    return o;
}, {})

这是一个JSFiddle一起玩。

关于javascript - 我可以在 json 数据上使用 javascript 执行复杂的 SQL 样式查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137498/

相关文章:

javascript - 对 firebase 的异步和等待标注不等待

WordPress 的 php 表单处理

php - 使用 jQuery Ajax 和 PHP 更新 SQL 数据库

SQL:按相似值对结果进行计数和分组的有效方法

java - 如何从字节数组中提取文件扩展名

javascript - 是否有一个 jQuery 选择器可以查找不存在的子字符串?

javascript - 如何使用 webpack 和 babel 将 js 文件编译为库

javascript - 使用带有 JavaScript 的离散标记检查元素是否关闭

javascript - 如何在剑道网格下拉菜单中使用级联?

javascript - 使用 jQuery 获取复选框值