我在 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 编码?