2011-08-12 10 views
0

JQueryのgetJSON()を使用して、WebサーバーからJSONを要求しています。それから、私は応答を解析したい。次のようにJSON応答の形式は次のとおりです。JQueryのgetJSON()解析で「未定義」の値が得られる

{ 
    "responseStatus": "200", 
    "responseData": { 
     "resultText": "Hello" 
    }, 
    "originalText": "hi" 
} 

そして、私のjQueryコード:

$.getJSON(url, function (json) { 
    $.each(json, function (i, result) { 
     alert(result.resultText); 
    }); 
}); 

私が直面しています問題は、私は連続して3つの警告ウィンドウ受け取るということです: "、「未定義」をこんにちは "、"未定義 "です。私は、resultTextの単一の値を取得して表示することしか考えていません。私はなぜ「Undefined」を受け取っていますか?

ありがとうございます!

答えて

2

私はあなたがすることができると思う:

$.getJSON(url,function(json){ 

    alert(json.responseData.resultText);  

}); 
+0

これは、おかげで、ありがとう!私はJQueryを初めて使うので、まだすべての構文を学びたいと思っています。 – littleK

2

responseDataはちょうどあなたが全体のJSONをループしているので、次の3つのアラートを取得している

$.getJSON(url,function(json){ 
    alert(json.responseData.resultText);  
}); 

を試してみてください、あなたが$.eachループを使用している理由は単なるオブジェクトであります3つのプロパティを持つオブジェクト

$.getJSON(url, function (json) { 
    $.each(json, function (i, result) { 
     //In this loop result will point to each of the properties 
     //of json object and only responseData has resultText property 
     //so you will get proper alert other wise for other properties 
     //it is undefined. 
     alert(result.resultText); 
    }); 
}); 
2

jsonオブジェクトを介してerateした後、まずオブジェクト "responseStatus"を取得します。 responseStatus.resultTextを実行しようとすると、responseStatusにはそのプロパティがないため、未定義です。

$.getJSON(url, function (json) { 
    alert(json.responseData.resultText); 
}); 
2

はあなたが反復している

$.getJSON(url,function(json){ 
     alert(json.responseData.resultText); 
}); 
2

(あなたが直接それを行うことができます)、このいずれかを試してみてください。同じだけの使用単一の結果を見るために「originalText」

のために行きます全体の応答...あなたがヒットしているという意味

  1. responseStatus
  2. responseData
  3. originalText

しかし、のみあなたresponseDataプロパティがresultText性質を持っています。

関連する問題