2012-03-20 10 views
1

私のサーバは有効なJSON文字列(JSONP)を返します。私はこの機能がJSON文字列をjavascript関数に渡す

function parseJSON (myOBJ) { 

    //myOBJ is already a JSON object but I wanted to it to be a JSON string 
    // so that I can check 
    // if browser supports JSON.parse otherwise do eval on that string. 
} 
+0

https://github.com/douglascrockford/JSON-js/blob/master/json2.js – ThiefMaster

答えて

3

このmyobjがすでにJSONオブジェクトですが、私はかどうかを確認できるように、私はJSON 文字列であるためにそれにたかっを実装しているクライアント側の

例えばparseJSON ({"NAME":"Tom"});

ブラウザはJSON.parseをサポートしていません。そうでない場合は、その文字列でevalを実行します。

myObjはJSONオブジェクトである場合は、ブラウザがJSON(およびJSON.parse)をサポートし、私は言うでしょう。文字列に戻す場合は、JSON.stringify。ブラウザを信頼しない場合は、json2.jsをダウンロードしてください。 evalは使用しないでください。

[編集]あなたのケースで
が、それはJSONP AA から要求を来る見て、そのような要求はを返すオブジェクトが文字列で、その文字列が後に、スクリプトタグに解析されそれは既に評価されるでしょう。すべてのブラウザがサポートしているはずですが、クライアントサイドのJSONはここに含まれているとは思いません。

+0

ご返信ありがとうございます。 JSON.parseがブラウザでサポートされていない場合の動作はわかりません。この状況を処理するには、どのようにコードをparseJSON関数内に記述しますか? myObjはまだ文字列になりますか? –

+0

こんにちはkaushal kishore、ブラウザがJSONをネイティブでサポートしていない場合、それを解析するための外部スクリプトが必要になります(json2.jsなど)。しかし私の答えを編集してみてください。 – KooiInc

関連する問題