有一个奇怪的JSON解析问题

时间:2013-03-26 19:50:43

标签: jquery ajax json

我知道以前发过很多JSON解析问题,但没有一个能帮助我。

我通过ajax从PHP发送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");

2 个答案:

答案 0 :(得分:2)

alert(obj[0].destinationUrl);

大写小写问题。

编辑以显示其他人看到的实际解决方案......

答案 1 :(得分: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);
    }