我有这样的脚本:如何遍历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