2012-01-26 117 views
1

IM有一些問題outting我返回數組 - 在控制檯登錄它顯示了使用的jQuery/JSON輸出數據

{ 
    "text":"{\"error\":false,\"msg\":\"found in search\"}", 
    "data":{ 
     "notifications":[ 

     ] 
    } 
} 

IM

success : function(data){    
      $('#waiting').hide(500); 
      $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success').text(data.msg).show(500); 
      if (data.error === true) 
       $('#restricted_locator').show(500); 
     }, 

然而data.msg返回undefined,但現在看數組它沒有任何提取,但我怎麼能改變從文本中獲取數據?

在此先感謝!

+0

如果它顯示了這個日誌輸出,當你登錄的數據,然後只是嘗試data.text – kiev

+0

data.text顯示數據的數組,但我需要獲得數組內的數據 - 輸出時,當我使用,這是我所作的以上 –

+0

對不起,當我的控制檯數據我得到上述 –

回答

0

如果我沒有記錯的話,你必須使用jQuery.parseJSON(data)$.parseJSON(data)解析「數據」,以JSON所以你的代碼應該是:

function(data) {    
    var data_obj = $.parseJSON(data.text); 

    $('#waiting').hide(500); 
    $('#message').removeClass().addClass((data_obj.error === true) ? 'error' : 'success').text(data_obj.msg).show(500); 

    if (data_obj.error === true) 
     $('#restricted_locator').show(500); 
    }, 
+0

我試過你的建議,我得到data_obj爲空 –

+0

好吧,你有它,「數據」是空的,我建議在Chrome中提出請求,並在XHR請求的控制檯中查找,右鍵單擊 - >打開在新選項卡中,查看是否實際獲取了需要轉換爲JSON的字符串。 – ComputerSaysNo

+0

我用parseJSON(data.text)代替,並且工作完美!感謝您的正確方向 –

0

我假設問題中的控制檯輸出是數據對象。根據這一點,您應該使用data.text.msg來設置文本,並使用data.text.error來檢查錯誤。

試試這個。

$('#message') 
.removeClass() 
.addClass((data.text.error === true) ? 'error' : 'success') 
.show(500)//I am deliberately calling show first because you will see the element atelast 
.text(data.text.msg || "no message");//If there is no msg you will at least see "no message" just to confirm you that msg is undefined or null 
+0

的數據從上面的對象是當我console.log(data.text) –

+0

對不起我的錯誤,當我控制檯日誌數據我得到上述結果返回,但我試着按照你以前的建議,並返回undefined –

+0

它應該很好。 – ShankarSangoli