2013-03-20 4 views
1

я постоянно получаю неопределенными при попытке получить значения от ответа JSon:JSON объект из ответа

// Ошибка

{"NewDataSet":{"Table1":{"AUTONUM":"120"}}} 

// Код

function DisplayAdvisorDetail() { 
      $.ajax({ 
       type: "POST", 
       url: "url", 
       data: "{'ZipCode':'48038'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        var adv = response.d; 
        $("#QuickenName").html(adv.AUTONUM); 
        alert(adv.AUTONUM); 
       }, 
       failure: function (msg) { 
        alert(msg); 
       } 
      }); 
     } 
+2

, что '' .d это должно быть 'ответ [ 'NewDataSet'] [ 'Table1'] [ 'AUTONUM];?' Вы можете [увидеть это работает здесь] (http://jsfiddle.net/sZA4E /) – Ohgodwhy

+0

Что сервер возвращает как 'response'? – sweetamylase

+0

ответа ['NewDataSet'] ['Table1'] достаточно. проверьте его следующее заявление – 999k

ответ

1

ваш формат JSON не выглядит правильно для меня в любом случае .. Вы можете использовать . оператору получить значение объекта ответа

var adv = response.NewDataSet.Table1; 
    $("#QuickenName").html(adv.AUTONUM); 
    alert(adv.AUTONUM); 
0

Это одно:

var adv = response.d; 

должно быть:

var adv = response.NewDataSet.Table1; 

Ваш ответ получает JSON затем добавить объекты с . в соответствии с JSON объектов вы получаете, в этом случае первый является NewDataSet то в нем Tabel1. После выполнения этого изменения, безусловно, вы получите результат в adv.AUTONUM.

-1

тогда лучше попробовать это.

success: function (response) { 
        var adv = $.parseJSON(response.d); 
        $("#QuickenName").html(adv.Table1[0].QuickenName); 
        alert(adv.Table1[0].AUTONUM); 
       }, 
+0

, вам не нужно разбираться здесь .. так как 'dataType:" json ",' сделает это за вас .. проверьте документы – bipen