1

Javascript コード内で JSON 文字列をデコードする最良の方法は何だろうと思っています。

次のように、JSON 文字列を JS 内に埋め込む必要があります。

var params = dojo.fromJson('<?=json_encode($this->params); ?>');

dojo.fromJson は文字列をデコードし、json_encode はサーバー側でオブジェクトをエンコードする PHP 関数です。

json エンコーダーは ' chars を無視し、" を \" に変換するだけのようです。したがって、$this->params 内の変数の 1 つに ' 文字が含まれていると、Javascript エラーが発生します。

例えば:

var params = dojo.fromJson('{"id":"11","object_type":"Let's go"}');

これにアプローチする最良の方法は何ですか?

手伝ってくれてありがとう。

4

1 に答える 1

4

JSON は自分で生成しているので信頼できるので、JSON として扱う必要はなく、代わりに JS として扱うことができます。

var params = <?=json_encode($this->params); ?>;

PHP の JSON エンコーダーは自動的にエスケープ</script>するので、スクリプト要素をデータで終了することを心配する必要はありません。

于 2012-09-28T14:14:51.357 に答える