2

PHPを使用してサーバーからデータを取得しています。このデータを JavaScript アプリケーションで使用したいので、次のようにしています。

var polylines = <?php echo json_encode($polylines); ?>;

$polylinesは単なる PHP 配列であり、この方程式の右辺は単なる PHP 文字列です。polylinesしかし、JSON.parse() 関数を呼び出したことがないにもかかわらず、オブジェクトとして動作するようになったことに気付きました。これは、JSON.parse() が必要ですか?という質問につながります。または、入力した文字列がjsonのようなものであることをjavascriptが「検出」し、自動的にオブジェクトとして解析します(この場合はそうしているように見えます)?

4

2 に答える 2

3

いいえ、JSON.parse()この場合は必要ありません。

このコードは、JavaScript 変数への割り当ての右側に JSON テキストをダンプします。JSON は JavaScript の厳密なサブセットであるため、ここで実際に行っているのはJavaScript コードの生成です。JavaScript は文字列を「認識」しません。クライアント側のパーサーは、JavaScript オブジェクト リテラルを認識します。

于 2013-05-30T13:01:17.503 に答える
2

PHP をクライアント ブラウザに取り込む方法によって異なります。この場合、JavaScript で二重引用符を取得しません。

ケース 1: var polylines = "[\"key\":12]"; この場合、 JSON.parse を実行する必要があります

ケース 2: var polylines = ["key":12]; この場合、JSON.parse を実行する必要はありません。これはあなたのケースです。

于 2013-05-30T13:13:25.650 に答える