javascript-从SQL结果创建嵌套的JSON对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-从SQL结果创建嵌套的JSON对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1890字,纯文字阅读大概需要3分钟。
内容图文
![javascript-从SQL结果创建嵌套的JSON对象](/upload/InfoBanner/zyjiaocheng/882/f6cf67c7ebe9447f81957a93d44babf5.jpg)
我试图弄清楚如何创建嵌套的JSON对象,如下所示:
company: "Company 1",
pricing: {
term: "1 year",
price: "$4.95",
term: "2 years",
price: "3.95"
},
我在MySQL中有两个表,一个称为计划,以这种方式构造
| id | company |
------------------
| 2 | company 1 |
还有另一个表plans_pricing代表定价数据
| id | plans_id | term | price |
--------------------------------
| 1 | 2 | 1 year | $4.95 |
| 2 | 2 | 2 years| $3.95 |
我正在使用Laravel 4查询数据库并创建json以发送回我的ajax请求.这是查询,当前正在发送服务器500错误.
public function results()
{
$answers = $_POST['answers'];
$data = DB::table('plans')
->join('plans_pricing', 'plans.id', '=', 'plans_pricing.plans_id')
->select('plans.company', 'plans_pricing.price', 'plans_pricing.term')
->whereIn('plans.id', $answers)
->get();
echo json_encode($data);
}
我不知道为什么这个查询不起作用,但这甚至不是为什么我问这个问题.我需要知道如何获取嵌套的JSON对象,在创建联接时,我相信每个对象都会收到一个单独的对象,如下所示:
| company | price | term |
------------------------------------
| company 1 | 4.95 | 1 year |
| company 1 | 3.95 | 2 years|
如何使此SQL查询返回一个嵌套的JSON对象,就像我上面描述的那样?我已经在这个问题上停留了两天了,真的可以使用一些指导.谢谢
更新:
通过更改echo json_encode以返回Response :: json($data);修复了服务器500错误.
解决方法:
我从未使用过Laravel,但我认为这应该可行:
$output = array();
$currentCompany = "";
foreach ($data as $datum) {
if ($datum->company != $currentCompany) {
$output[] = array();
// get a reference to the newly added array element
end($output);
$currentItem = & $output[key($output)];
$currentCompany = $datum->company;
$currentItem['company'] = $currentCompany;
$currentItem['rates'] = array();
}
$currentItem['rates'][] = array("price" => $datum->price, "term" => $datum->term);
}
json_encoded结果:
[{
"company":"company 1",
"rates":[{
"price":4.95,"term":"1 year"
},{
"price":3.95,"term":"2 years"
}]
}]
内容总结
以上是互联网集市为您收集整理的javascript-从SQL结果创建嵌套的JSON对象全部内容,希望文章能够帮你解决javascript-从SQL结果创建嵌套的JSON对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。