質問

複製: jQueryでJSONにシリアル化

.getJSONなどを実装できるため、jQueryにはJSONシリアライザー/デシリアライザーが組み込まれているようです。組み込みのjQuery JSONプロセッサー自体を汎用JSONプロセッサーとして使用する(つまり、jQuery.something()呼び出しを行って自分のデータをシリアライズ/デシリアライズする)ことができ、別個のJSONライブラリーの必要性はなくなりますか?

更新:上記の質問の回答では、jQueryにはJSONシリアル化コードはありません。 JSONの逆シリアル化はどうですか? .getJSONはどのように実装されていますか?また、なぜデシリアライゼーション機能が一般的な用途に公開されていないのですか?

Update2:私はすでにjson.orgのjson2を使用していますが、単純な逆シリアル化だけを行っているので、それを取り除こうとしています。 jqueryは本当にevalをしているように聞こえますか? それはセキュリティにはあまり良くないという印象がありました:

  

eval関数は非常に高速です。   ただし、コンパイルして実行できます   任意のJavaScriptプログラム。   セキュリティの問題になります

役に立ちましたか?

解決

jQueryは今のところeval()を使用しています。 jQuery 1.4には、それをサポートするブラウザーでのブラウザー固有のJSONデシリアライゼーションのサポートが含まれます。必要に応じて、可能な場合はjQueryのdataFilterコールバックを使用してeval()を回避します(すべての$ .ajax()、$。post()、$。getJSON()呼び出しに自動的に影響を与えるために$ .ajaxSetupに入れます)

他のヒント

必要なのは、 http://www.jsonで入手できるserialize / deserialize実装です。 org / js.html はJSON.parse()およびJSON.stringify()を提供し、データのシリアル化(検証)を容易にします。

JSONテキストをオブジェクトに単純に変換する場合は、eval()関数を使用します。

jQueryの使用を開始しましたが、JSON.orgからJSON2.jsライブラリをドロップし、jQueryを拡張して使用するのが最も簡単であることがわかりました。

着信jsonデータjQueryを逆シリアル化するのはeval()だけだと思います。ただし、組み込みのシリアル化については知りません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top