我有這樣的腳本:如何遍歷JSON?
<script>
function postForm() {
$.post("rest/login", $("#myform").serialize()).done(function(data) {
if(data.status === "OK"){
window.location.replace("coursesform.jsp");
alert(data);
}
else alert (data.status);
//alert("Invalid credentials. Please use the same username and password you'd use for a SoCS machine.");
});
}
</script>
我改變什麼的登錄API從簡單的輸出這個帶回:
{"status":"OK"}
到輸出的用戶ID,以及:
{"status":"{au:true, id:testtutor}"}
如何我可以提取「真實」和「testtutor」嗎?
我嘗試這樣做:
var obj = JSON.parse(status.data);
所以我可以做obj.au
但我收到此:
不過,我收到此瀏覽器:
VM701:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
'{「status」:「{au:true,id:testtutor}」}'很奇怪。它是具有單個屬性「status」的對象的JSON表示法,其值是一個字符串。更正常的版本是'{「status」:{「au」:true,「id」:「testtutor」}}',它是一個帶有屬性'status'的對象,其值是一個對象兩個屬性「au」和「id」,它們的值分別爲「true」和「testtutor」。因此,處理這些值的第一步是以易於使用的格式輸出它們。 –
不應該'status.data'是'data.status'? – Barmar
問題似乎在控制器中,它不會生成正確的JSON。我懷疑你試圖手工創建JSON,並且做錯了,而不是使用庫函數。 – Barmar