3

我在 zend 和 js 中的 json 功能有问题。

我尝试对包含一些模型的单个数组进行编码,如下所示:

echo json_encode(Application_Model_Marker::getMarkers());

var mark = JSON.parse(jsonVal); //in js

其中 getMarkers 是一个返回标记模型数组的静态方法。

这工作正常,当我在 js 脚本中解析它并尝试访问 json 对象的值时,它工作正常。

但是,如果我尝试创建并发送这样的数组数组:

$allData = array();
$allData['info'] = Application_Model_Marker::getMarkers();
$allData['openingHours'] = Application_Model_Openinghours::getOpeningHours();
$allData['happyHours'] = Application_Model_Happyhour::getHappyHours();

echo json_encode($allData);

当我尝试 alert(jsonVal.responseText); 时,它仍然发送所有正确的信息;在js中。

它有三个数组,每个数组都包含一些对象数组。

但是,当我尝试像第一个示例中那样将变量初始化为已解析的 json 对象时,我无法访问这些值,并且当我尝试它时程序停止时似乎会发生某种错误。

我不太明白,因为当我尝试从编码的 json 对象打印响应文本时,它具有所有正确的信息。

任何想法如何进行这种多维 json 编码?

4

1 回答 1

0

试试这个,希望它会工作:

<sctript>
var mark;
eval("mark = "+jsonVal+";");
</sctrip>
于 2012-07-23T07:41:01.203 回答