Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
zend php多数组json_编码_Php_Javascript_Json_Zend Framework - Fatal编程技术网

zend php多数组json_编码

zend php多数组json_编码,php,javascript,json,zend-framework,Php,Javascript,Json,Zend Framework,我对zend和js中的json功能有问题 我尝试对一个数组进行编码,其中包含一些模型,如下所示: echo json_encode(Application_Model_Marker::getMarkers()); var mark = JSON.parse(jsonVal); //in js $allData = array(); $allData['info'] = Application_Model_Marker::getMarkers(); $allData['openingHours

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

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

echo json_encode(Application_Model_Marker::getMarkers());

var mark = JSON.parse(jsonVal); //in js
$allData = array();
$allData['info'] = Application_Model_Marker::getMarkers();
$allData['openingHours'] = Application_Model_Openinghours::getOpeningHours();
$allData['happyHours'] = Application_Model_Happyhour::getHappyHours();

echo json_encode($allData);
其中getMarkers是一个静态方法,返回标记模型数组

这很好,当我在js脚本中解析它并尝试访问json对象的值时,效果很好

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

echo json_encode(Application_Model_Marker::getMarkers());

var mark = JSON.parse(jsonVal); //in js
$allData = array();
$allData['info'] = Application_Model_Marker::getMarkers();
$allData['openingHours'] = Application_Model_Openinghours::getOpeningHours();
$allData['happyHours'] = Application_Model_Happyhour::getHappyHours();

echo json_encode($allData);
当我尝试发出警报时,它仍然发送所有正确的信息(jsonVal.responseText);在js中

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

但是,当我尝试将变量初始化为解析后的json对象(如第一个示例中所示)时,我无法访问这些值,并且当我尝试时程序停止时,似乎发生了某种错误

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


有没有关于如何进行多维json编码的想法?

试试这个,希望它能起作用:

<sctript>
var mark;
eval("mark = "+jsonVal+";");
</sctrip>

var标记;
评估(“标记=“+jsonVal+”;”);

试试这个,希望它能起作用:

<sctript>
var mark;
eval("mark = "+jsonVal+";");
</sctrip>

var标记;
评估(“标记=“+jsonVal+”;”);

你能澄清一下»某种错误«吗?大多数情况下,错误确实有助于查明原因,而简单地忽略它(或说“它不起作用”)会使其他人很难帮助您完成任务。您如何接收响应并初始化
jsonVal
JSON.parse()
的第一个参数应该是字符串变量,但是您提到了
alert(jsonVal.responseText)
,所以我猜
jsonVal
是一个对象?然后您可以尝试
JSON.parse(jsonVal.responseText)
jsonVal
是否已经对对象进行了JSON解析?在调试此类调用时,这会很方便。它允许您调试带有错误等的javascript/dom。其次,您是否尝试访问
mark.info
?它没有定义吗?mark.info完全没有定义。我尝试了JSON.parse(jsonVal.responseText),它也可以处理单个数组,但仍然不能处理多个数组。您能否澄清一下»某种错误«?大多数情况下,错误确实有助于查明原因,而简单地忽略它(或说“它不起作用”)会使其他人很难帮助您完成任务。您如何接收响应并初始化
jsonVal
JSON.parse()
的第一个参数应该是字符串变量,但是您提到了
alert(jsonVal.responseText)
,所以我猜
jsonVal
是一个对象?然后您可以尝试
JSON.parse(jsonVal.responseText)
jsonVal
是否已经对对象进行了JSON解析?在调试此类调用时,这会很方便。它允许您调试带有错误等的javascript/dom。其次,您是否尝试访问
mark.info
?它没有定义吗?mark.info完全没有定义。我尝试了JSON.parse(jsonVal.responseText),它也适用于单个数组,但仍然不能用于多个数组。我曾想过尝试eval,但我已经了解到,与解析相比,这是一种非常糟糕的做法?如果数据来自您的服务器,并且您可以完全控制它,那么eval并不是一个坏习惯。我曾想过尝试eval,但我已经读到,与解析相比,eval是一个非常糟糕的习惯。如果数据来自您的服务器,并且您可以完全控制它,那么eval也不是一个坏习惯。