如何遍历JSON?

时间:2016-09-02 16:17:21

标签: javascript json web-services frontend traversal

我有这个脚本:

<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}"}

如何提取“true”和“testtutor”?

我试过了:

var obj = JSON.parse(status.data);

所以我可以做obj.au然而我收到了这个:

但是,我在浏览器中收到了这个:

VM701:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0

2 个答案:

答案 0 :(得分:0)

{"status":"{au:true, id:testtutor}"}

删除&#34;围绕{au:true,id:testtutor}, 做到这一点

{"status":{au:true, id:"testtutor"}}

然后你将能够通过status.au获得au,并通过status.id获取id

您收到错误是因为"{au:true, id:testtutor}"不是有效的JSON,而是{"au":true, "id":"testtutor"},但您不能这样做,因为您已经拥有了&#34;在它周围。

答案 1 :(得分:0)

您的API未返回有效的JSON,或者至少没有按照您期望的方式返回。你的密钥应该是JSON中的字符串,所以你应该返回类似的东西:

{
  "status": {
    "au": true,
    "id": "testtutor"
  }
}

... JSON.parse()将能够解析。