2014-02-06 126 views
0

我有打印json對象的問題。在螢火蟲我可以看到這是從Ajax調用返回。用jquery打印json對象

ABOUT 
"Company" 

CONTACT 
"Contacts" 

FAKTY 
"Facts" 

KARIERA 
"Career" 

這是我的Ajax調用

$.ajax({ 
    url: 'defines/defines_en.php', 
    dataType: 'json', 
    complete: function (data) { 
     if (data.status == 200){ 
      alert(data['ABOUT']); 
      alert(data.ABOUT); 
     } 
     else { 
      alert("Nepodarilo sa zmeniť jazyk"); 
     } 
    } 
    }); 

它讓我在這兩個警報定義。

有人可以幫忙嗎?

UPDATE defines_en.php文件:

<?php 
$data = array(
'PORTFOLIO'=>'Portfolio', 
'ABOUT'=>'Company', 
'CONTACT'=>'Contacts', 
'ZALOHOVANIE'=>'Backup and Archivation', 
'KONSOLIDACIA'=>'Consolidation and Virtualization', 
'MANAZMENT'=>'Management and Monitoring', 
'NETWORKSEC'=>'Network security', 
'SPRAVAKONC'=>'Správa koncových zariadení', 
'FAKTY'=>'Facts', 
'MGMT'=>'Management', 
'REF'=>'References', 
'KARIERA'=>'Career', 
); 
echo json_encode($data); 
?> 

更新2警報(JSON.stringify(數據)):

{"readyState":4,"responseText":"{\"PORTFOLIO\":\"Portfolio\",\"ABOUT\":\"Company\",\"CONTACT\":\"Contacts\",\"ZALOHOVANIE\":\"Backup and Archivation\",\"KONSOLIDACIA\":\"Consolidation and Virtualization\",\"MANAZMENT\":\"Management and Monitoring\",\"NETWORKSEC\":\"Network security\",\"SPRAVAKONC\":\"Spr\\u00e1va koncov\\u00fdch zariaden\\u00ed\",\"FAKTY\":\"Facts\",\"MGMT\":\"Management\",\"REF\":\"References\",\"KARIERA\":\"Career\"}","responseJSON":{"PORTFOLIO":"Portfolio","ABOUT":"Company","CONTACT":"Contacts","ZALOHOVANIE":"Backup and Archivation","KONSOLIDACIA":"Consolidation and Virtualization","MANAZMENT":"Management and Monitoring","NETWORKSEC":"Network security","SPRAVAKONC":"Správa koncových zariadení","FAKTY":"Facts","MGMT":"Management","REF":"References","KARIERA":"Career"},"status":200,"statusText":"OK"} 
+1

這看起來不像JSON。 – kapa

+0

請張貼數據的值,而不是僞代碼或任何它是 –

+0

@Martin這不是一個有效的JSON。有關更多信息,請轉至[JSON官方網站](http://json.org/) –

回答

2

complete不會返回JSON對象,它只返回xhr請求和狀態文本。嘗試使用successdone

// one way 
$.ajax({ 
    url: 'defines/defines_en.php', 
    dataType: 'json', 
    success: function (data) { 
     alert(data['ABOUT']); 
     alert(data.ABOUT); 
    }, 
    error: function (e) { 
     alert("Nepodarilo sa zmeniť jazyk"); 
    } 
}); 


// another way 
$.getJSON('url') 
.done(function (e) { 
    // success 
}) 
.fail(function (e) { 
    // error  
}); 
+0

這工作就像一個魅力:)謝謝 –

+0

更好和優雅的解決方案。尼斯丹尼斯。 +1 –

0

你必須從數據對象獲得的responseText。嘗試這個。

$.ajax({ 
    url: 'defines/defines_en.php', 
    dataType: 'json', 
    complete: function (data) { 
     if (data.status == 200){ 
      response = data.responseText; 
      //alert(data['ABOUT']); 
      alert(response.ABOUT); 
     } 
     else { 
      alert("Nepodarilo sa zmeniť jazyk"); 
     } 
    } 
    }); 
+0

如果您使用'成功'回調,則不會有data.status,除非您已在服務器端生成JSON – Mir

+0

@Mir指定它回覆。 –

+0

這不工作。仍未定義。 –

0

「完成」回調和「成功」之間的jquery有所不同。

如果使用'complete',那麼傳遞的第一個參數是一個jqXHR對象,而不是直接所需的數據。所以你的所有屬性都是未定義的。

如果您使用'成功'回調,那麼你有實際的數據作爲第一個參數,你可以像你一樣使用它們。 (除了事實,你不會有一個「狀態」屬性)

謂曰:

$.ajax({ 
url: 'defines/defines_en.php', 
dataType: 'json', 
success: function (data) { 
     alert(data.ABOUT); 
}, 
error: function(error) { 
    alert('error message here') 
}}); 

文檔瀏覽:http://api.jquery.com/jquery.ajax/