-1

応答配列をjsonとしてエンコードしようとしていますが、今までうまくいきました。

$response = array();
$response['icons']= $icons_arr;
$response['message']= $msg;

echo json_encode( $response );

結果は

Array{"icons":["{\r\n\t\t\t\t\t\"icon_web_id\": \t\t\t\"0 ... 

Javascript は「配列」単語を解析できないため、エラーをスローします。JQuery 関数 $.parseJSON() は {} または [] を想定していると思われます。

ここで何が間違っていますか?json_encode() が正しく機能しないのはなぜですか?

おまけの質問: これらすべての \t\t\t\t が発生する原因は何ですか?

4

2 に答える 2

2

json文字列が出力される前に、他のコードが「配列」出力を生成しています。出力行を次のように変更することで、これを証明できます。

echo "json_encode returned ".json_encode( $response );

他の echo ステートメントがないかコードを確認してください。

于 2013-07-27T07:13:20.213 に答える
1

おまけの質問について:

\tPHP のタブです。コードには、スペースの代わりにタブが含まれている場合があり、複数\tの としてレンダリングされる可能性があります。

于 2013-07-27T07:25:40.013 に答える