有人用cakephp的么。求教一个关于json的问题。

2013-09-16 16:48:04 +08:00
 jianghu52
cakephp是个比较标准的mvc的结构。现在有个问题。
我在后台controller,取了一组数据,放在二维数组变量里面了。
$datalist:
格式如下

array(2) {
[0]=>
array(1) {
["testtable"]=>
array(2) {
["c_type"]=>
string(1) "1"
["c_index"]=>
string(1) "0"
}
}
[1]=>
array(1) {
["testtable"]=>
array(2) {
["c_type"]=>
string(1) "2"
["c_index"]=>
string(1) "1"
}
}
}
这样的一个数组,我想放在前台的一个json类型的变量。
希望这个变量最后是这样的。
var myJSONObject = {
"testtable": [
{"c_type": "1", "c_index": "0"}
]
"testtable": [
{"c_type": "2", "c_index": "1"}
]
};

我现在的做法,是循环controller得到的数组,然后把值再组合一次,赋给json变量。
类似写法如下:
{/literal}{foreach from=$datalist item=datainfo}{literal}
myJSONObject[{/literal}{$datainfo.c_index}{literal}] =
{"testtable" :
{"c_index":{/literal}{$datainfo.c_index}{literal},
"c_type":{/literal}{$datainfo.c_type}{literal}
}
}
{/literal}{/foreach}{literal}
老实说看这样的代码我真心恶心,但是实在不知道还有什么其他的办法。我也试过在后台controller里面,直接把数组用json_encode方法直接转成字符串,但是赋往前台的语句怎么写都不对。希望有高人指点。
3250 次点击
所在节点    PHP
6 条回复
xingis
2013-09-16 17:39:38 +08:00
qiayue
2013-09-16 17:51:53 +08:00
json_encode 生成的结构给前端用是完全没有问题的,我现在就这样用,同时给手机端提供 api 也是没问题。
jianghu52
2013-09-16 21:48:24 +08:00
单独的echo json_encode(数组)。这样是没有问题的。但是我这个该死的项目前端还用了smarty。所以{$}这样的符号都不认。所以我卡在这里了
msg7086
2013-09-16 23:12:47 +08:00
@jianghu52

var myJSONObject = {$json_object|json_encode};

smarty里还有比这更简单的做法么……
neodreamer
2013-09-17 01:55:23 +08:00
http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html

先调整好数组,然后json encode

楼主我觉得你要的是这个。
jianghu52
2013-09-17 09:00:43 +08:00
@msg7086 谢谢,这个方法很管用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/82661

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX