DOJO:以某种格式从RESTful API获取JSON结果,接下来要做什么来解析结果并将其放入变量中?

时间:2014-09-17 04:49:12

标签: javascript json rest dojo

我有一个关于JSON处理的问题(要在DOJO dgrid中显示)

Quick intermezzo:使用XAMPP 3.2.1和DOJO 1.10以及使用“Slim”制作的RESTful API

这是我的JSON结果 (通过使用dojo / request / xhr GET方法和自定义API密钥作为授权标头完成): 我在这里添加了缩进,因此更容易阅读(但实时是不同的情况)

{"error":false,
 "theworkers":[{"code":"C00001","name":"ALEXANDER"},
               {"code":"C00002","name":"BONAPARTE"},
               {"code":"C00003","name":"CUST"}
              ]
}

我一直在寻找...但仍然找不到任何好的线索, 尝试使用JSON.parse但在firebug中收到错误消息:

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

这是我触发该错误的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Testing!</title>
</head>
<body>
    <button id="startButton"> Start! </button>
    <div id="output"> Output here: </br></div>

    <!-- The DOJO Script Goes From Here -->
    <script src="dojo/dojo.js"
            data-dojo-config="async: 1, parseOnLoad: 1"
    >
    </script>
    <script>
    require(["dojo/request/xhr", 
             "dojo/dom", 
             "dojo/dom-construct", 
             "dojo/json", 
             "dojo/on", 
             "dojo/domReady!"
            ],
            function(xhr, dom, domConst, JSON, on){
              on(dom.byId("startButton"), "click", function(){
                var authKey = "ed75ae5af71ff50b0d3fa859fe102f1e";  
                domConst.place("<p>Requesting...</p>", "output");
                xhr("restinpride/v1/theworkers", {
                  headers: {
                        "Authorization": authKey
                      },  
                  handleAs: "json"
                }).then(function(data){
                    var res = JSON.parse(data);
                    domConst.place("<p>Results are: </p>" + res  + "#" , "output");
                });
              });
            });
    </script>
</body>
</html>

如果这有点太多问题,那么首先我要问:

A)如何将“error”:false放入名为“isErrorVar”的布尔变量中?

B)如何把那些{“代码”:“C00001”,“名称”:“亚历山大”}等等(BONAPARTE,CUST)     进入一个对象(或数组),在将来的使用中很容易用于dgrid     作为名为“theWorkersObj”的变量

提前致谢

1 个答案:

答案 0 :(得分:0)

Lame如何...这是由于我的知识缺乏

答案是:

var res = JSON.parse(JSON.stringify(data));
var isError = res.error;
var theWorkersObj = res.theworkers;

这里真正的优点是,首先对数据进行字符串化(这是xhr请求的结果) 否则,代码不会起作用......

因此,接下来我们可以使用访问变量,如:

domConst.place("<p>The error status is: </p>" + isError  + 
               " And The 2nd worker name is " + theWorkersObj[1].name, "output");

结果将是:     &#34;错误状态为:false第二个工作人员姓名是BONAPARTE&#34;

全部:D