zend php多数组json_编码
我对zend和js中的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
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也不是一个坏习惯。