【发布时间】:2015-01-19 15:59:44
【问题描述】:
我需要创建两个变量来运行这个结构的js
var sets = [{"label":"PHP","size":"6"},{"label":"SQL","size":"1"}];
var overlaps = [ {"sets":[0,1],"size":"0"}];
我正在尝试用 php 动态创建它,就像这样
$sets[] = array("label" =>"PHP", "size" => "6");
$overlaps[] = array("sets" => array(0,1), "size" => "0");
print json_encode(array($sets, $overlaps));
在 ajax 中我这样做
$.post(action
, {param:param}
, function(returned_data){
console.log(returned_data);
var json = $.parseJSON(returned_data);
sets = json[0];
overlaps = json[1];
});
Console.log 转储此
[[{"label":"PHP","size":"6"},{"label":"SQL","size":"1"},{"label":"JQuery","size":"1"}],[{"sets":[0,2],"size":"1"}]]
错误是“Cannot read property 'push' of undefined”
怎么了?如何解析 json 并将每个部分分配给变量?
【问题讨论】:
-
或者我是盲人,或者你的代码中没有“推送”?
-
我在这里的原因!没有“推”
-
@KoenHoeijmakers 这可能是我 jQuery 的
parseJSON的错误吗? -
问题只是分配。我认为关于“推送”的错误来自需要这些变量的其余代码。我会评论它并保留任务以尝试我得到的建议
-
刚刚使用 JSON.parse 通过我的 xmlHTTPRequest 对象解析了这个。完美运行