すべてのJSONは有効なjavascriptです(ただし、逆の場合はありません)。
// These two lines are equivalent
var someObject = { a: 'a', b: 'b' };
var someObject = jQuery.parseJSON('{ "a": "a", "b": "b" }');
あなたが外部リソースへの要求から、あなたのJSON文字列を取得している場合は、私が何を現在行っていることは、それを行うための最善の方法だと思います。
var $body = $(document.body);
$body.append("<script type='text/javascript'>var myJsonObject = " + jsonString + ";</script>");
が、私は個人的にこれがクリーンに見えるとは思わないが、このアプローチにはいくつかの他の問題があります:あなたが本当に望んでいた場合は、そうのように、新しいscript
要素にJSONを挿入することができます。ハッカーがあなたのサイトが戻ってきたJSONレスポンスに自分のjavascriptを入れることができたなら、その有害なjavascriptがあなたのサイトで実行され、潜在的にあなたのサイトに混乱を引き起こし、あなたを恥ずかしくします。
第2に、JavaScriptは(少なくともこの場合は)グローバル変数を作成し、現在実行中の関数と同じスコープで実行されません。
新しいscript
要素を作成し、JSONを解析するたびにDOMに挿入するという不必要な費用はもちろんですが、
JSON文字列に有害なjavascriptがあると、解析エラーが発生します(JSONはデータのみを保持し、コマンドは実行できません)。2)現在のスコープ内のすべて。
ありがとうございました! – Peter
喜んで助ける;) – benekastah