我在zend和js中的json功能有問題。zend php多個數組json_encoding
我嘗試編碼含有的模型一些數目這樣一個單一的陣列:
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);
它仍然將所有正確的信息,當我試圖提醒(jsonVal.responseText);在js。
它有三個數組,每個數組都包含一些對象數組。
但是,當我嘗試初始化一個變量給解析的json對象,就像第一個示例中一樣,我無法訪問這些值,並且當我嘗試它時程序停止時,似乎會出現某種錯誤。
我不太明白它,因爲它具有所有正確的信息,當我只是嘗試打印編碼json對象的響應文本。
任何想法如何做這個多維json編碼?
你能澄清»某種錯誤«的?大多數時候,錯誤*有助於查明原因並簡單地忽略它(或者說「它不起作用」),這使得其他人很難幫助你。 – Joey 2012-07-21 23:24:20
你如何獲得響應並初始化'jsonVal'? 'JSON.parse()'的第一個參數應該是字符串變量,但是你提到了'alert(jsonVal.responseText)',所以我猜'jsonVal'是一個對象?那麼你可以試試'JSON.parse(jsonVal.responseText)'或'jsonVal'已經是json解析的對象了? – mask8 2012-07-22 00:23:21
當調試這樣的調用時,[Firebug](http://getfirebug.com/)就派上用場了。它允許你用錯誤等來調試你的javascript/dom。其次,你有沒有嘗試訪問'mark.info'?它是不確定的嗎? – 2012-07-22 03:32:01