1

以前に投稿されたJSON解析の質問がたくさんあることは知っていますが、どれも私を助けてくれませんでした。

PHPからajax経由でJSONを自分のページに送り返しています。JSONLint.comによると、私は有効なJSONを使用しています。

私の問題は、オブジェクトのプロパティにアクセスするたびに、それらが未定義として返されることです。私console.logはjsonオブジェクトで、問題なく出力されます。私は混乱しています!

PHP

  $returnData[] = array("trainingAccess" => "$trainingAccess", 
    "destinationUrl" => "$destinationUrl", "errorMessage" => "$errorMessage");  

  echo json_encode($returnData);  

JS

      $.ajax({  
        type: "POST",  
        url: "submit_login.php",
        data: {
          userName: $("#userName").val(),
          password: $("#password").val()
        },
        success: function(data) {
          var obj = JSON.parse(data);

          console.log(obj);//Works
          alert(obj.destinationURL);//Doesn't work.
        }

解決

私はPHPで配列の配列を作成していました。

$returnData = array("trainingAccess" => "$trainingAccess", "destinationUrl" => "$destinationUrl", "errorMessage" => "$errorMessage");

4

2 に答える 2

2

試す

alert(obj[0].destinationUrl);

大文字と小文字の問題。

他の人が見ることができる実際の解決策を示すために編集されました...

于 2013-03-26T19:53:04.073 に答える
2

このajaxメソッドは結果のデータ型を推測し、適切なコンテンツタイプが含まれている場合はそれを解析する可能性があります。

何が起こっているかを確認できるようにデータ型を指定すると、データが既に解析されていることがわかります。

  $.ajax({  
    type: "POST",  
    url: "submit_login.php",
    data: {
      userName: $("#userName").val(),
      password: $("#password").val()
    },
    dataType: 'json',
    success: function(data) {
      console.log(data);
      alert(data[0].destinationUrl);
    }
于 2013-03-26T19:59:36.073 に答える