Javascript オブジェクトとして定義されたデータ構造があります。ネットワーク経由で送信するためにそれらを文字列化するのが好きです。JSON.stringify()
それらを呼び出すだけでうまくいくようです。しかし、それは良い習慣ですか?
これが壊れる可能性のある特別なケースはありますか (たとえば、静的メソッド?)
Javascript オブジェクトとして定義されたデータ構造があります。ネットワーク経由で送信するためにそれらを文字列化するのが好きです。JSON.stringify()
それらを呼び出すだけでうまくいくようです。しかし、それは良い習慣ですか?
これが壊れる可能性のある特別なケースはありますか (たとえば、静的メソッド?)
関数ではなくデータを送信するだけであれば、正常に機能します。ただし、JSONは値のみを伝達でき、関数は伝達できません。古いブラウザー(<IE8)にはJSONオブジェクトがネイティブにないため、フォールバックソリューションを提供する必要があります(jQueryのようなフレームワークはフォールバックを自動的に実装します)。
JSON は JS のサブセットなので、その観点からは 100% 問題ありません。
JSON は、JS に変換して操作したり、元に戻したり、送信したり、保存したりすることも目的としています。
したがって、すべての JSON を手動で記述する必要はなく、オブジェクトを JSON に変換することは本来の目的の一部です。
特殊なケースに関しては、JSON には関数や循環参照を含めることはできません...ネストされたオブジェクトと配列の内部には、文字列、数値、およびブール値以外のものはありません。
それがすでにデータのフォーマットである場合は、完了です。
IE6 および 7 には、ネイティブの JSON サポートがありません。
ただし、json2.js は、すべてのネイティブ実装が基づいている Douglas Crockford のファイルです。
その後、そのファイル!window.JSON
をロードすると、OldIE で問題なく動作します。