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で。

それぞれがオブジェクトのいくつかの配列を含む 3 つの配列があります。

しかし、最初の例のように変数を解析済みの json オブジェクトに初期化しようとすると、値にアクセスできず、試してみるとプログラムが停止するため、何らかのエラーが発生するようです。

エンコードされたjsonオブジェクトから応答テキストを印刷しようとすると、すべての正しい情報が含まれているため、よくわかりません。

この多次元jsonエンコーディングを行う方法はありますか?

4

1 に答える 1

0

これを試してください、うまくいけばうまくいくでしょう:

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