1

応答文字列から変数を取得する際に問題に直面しています。私の応答は次のとおりです。

responseText = {'page':'2','endOfPage':'yes','content':'abc'}

alert(responseText.page);

未定義を返していますが、誰かがそれを行う方法を提案できますか??

4

3 に答える 3

6

あなたの問題は、実際には responseText が文字列 ( responseText = "{'page':'2','endOfPage':'yes','content':'abc'}";) であることです。最初にそれを解析してオブジェクトを作成する必要がありますが、有効な JSON ではない単一引用符を使用しているため、これは失敗します。問題を解決するには二重引用符を使用する必要があります。

var json= "{ \"page\": 2, \"endOfPage\": \"yes\", \"content\": \"abc\" }";
var obj = JSON.parse(json);
alert(obj.page);

二重引用符を含む応答を返すように JSON ジェネレーターの実装を変更できない場合は、次のようにすべての一重引用符を二重引用符に置き換えてみてください。

var invalidJson = "{'page':'2','endOfPage':'yes','content':'abc'}";
validJson= invalidJson.replace(/\'/g, "\"");
var obj = JSON.parse(validJson);
alert(obj.page);
于 2012-11-06T07:18:53.760 に答える
-1
  • jQuery を使用している場合は、次のように使用できます。

responseText = '{"ページ":"2","endOfPage":"はい","コンテンツ":"abc"}';
responseText = jQuery.parseJSON(responseText);
アラート (responseText.endOfPage);

  • Javascript の場合:
responseText =  '{"page":"2","endOfPage":"yes","content":"abc"}';
alert(JSON.parse(responseText).page);

これは、JSON をネイティブ js オブジェクトに解析するために一部の最新のブラウザーでサポートされています。

于 2012-11-06T07:28:22.600 に答える
-3

json をオブジェクトに変換するには、eval 関数を使用する必要があります。

responseText = {'page':'2','endOfPage':'yes','content':'abc'}​​​​
var responseObject = eval(responseText);

alert(responseObject.page);
于 2012-11-06T07:18:51.987 に答える