2016-07-23 25 views
0

我似乎無法從下面的響應中使用下面的代碼獲取特定部分。當我嘗試使用response["minecraft.net"]時,我在控制檯日誌中看到「未定義」。有人可以向我解釋爲什麼這不起作用嗎?無法獲取API響應的特定元素[JS]

響應:

"[{"minecraft.net":"green"},{"session.minecraft.net":"green"},{"account.mojang.com":"green"},{"auth.mojang.com":"green"},{"skins.minecraft.net":"green"},{"authserver.mojang.com":"green"},{"sessionserver.mojang.com":"green"},{"api.mojang.com":"green"},{"textures.minecraft.net":"green"},{"mojang.com":"green"}]" 

代碼:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Mojang Servives Status</title> 
</head> 

<body> 
<script> 
var api = new XMLHttpRequest(); 
api.open("GET", "https://status.mojang.com/check", false); 
api.send(); 
console.log(api); 
var response = JSON.parse(api.response) 
console.log(response["minecraft.net"]); 
</script> 
</body> 

</html> 
+0

同步Ajax?真? – nnnnnn

回答

0

的響應被包裹的陣列的內部。所以你會使用response[0]['minecraft.net']

+0

它的工作,謝謝! – averysumner

+0

@averysumner但請記住,這意味着您假設數組的第一個索引始終包含具有「minecraft.net」屬性的對象。您可能打算使用此API的方式是遍歷所有數組,並顯示所有屬性以及它們的值。或者,如果您只對minecraft.net感興趣,請循環訪問數組,直到找到該屬性(否則Mojang可以更改對象的順序並且程序將中斷) –