DOJO:以某种格式从RESTful API获取JSON结果,以及接下来要做什么来解析结果并将其放入变量中
DOJO: Getting JSON result from RESTful API in certain format, and what to do next to parse the result and put it into variables?
我有一个关于JSON处理的问题(将在DOJO dgrid中显示)
快速intermezzo:使用XAMPP 3.2.1和DOJO 1.10以及由"Slim"制成的RESTful API
这是我的JSON结果(通过使用dojo/request/xhrGET方法,将自定义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) 如何放置{"code":"C00001"、"name":"ALEXANDER"}等(BONAPARTE,CUST)转换为一个对象(或数组),以便在将来使用dgrid时使用作为名为"theWorkersObj"的变量
提前感谢
How 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");
结果将是:"错误状态为:false,第二个工作人员名称为BONAPARTE"
仅此而已:D
相关文章:
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- knex:根据结果创建数组的合适方法是什么
- 我的localStorage结果显示了[null,null,“something”]],而不是“”;什么”;
- 绑定返回的结果和使用function()的结果之间有什么区别
- 基准测试js的结果是什么意思
- Prototype.js 1.7:将collect与显式函数一起使用会返回与内联函数不同的结果,原因是什么
- 操作 RxJS 流并发布结果的可观察量的正确方法是什么?
- 我正在尝试删除重复项并返回结果.我错过了什么
- 使用jquery的结果之间有什么区别
- 什么'It’为什么要做一个没有结果的条件
- 为什么我从两个函数中得到两个不同的结果;利用闭包似乎没有什么不同
- 当你想要所有结果而不管是否被拒绝时,用什么代替Promise.all()
- 什么'这是处理promise对象中错误结果的正确方法
- DOJO:以某种格式从RESTful API获取JSON结果,以及接下来要做什么来解析结果并将其放入变量中
- javascript中element.focus()方法的结果是什么
- 我可以调用什么来过滤字符串结果?
- 使用$resource并在多个控制器之间共享结果的最佳实践是什么?
- 为什么console.trace()的结果以一个“匿名函数”结束?这个函数是什么?
- 使用ajax将javascript变量传递给php,结果不会;我什么也不展示
- 将结果变量保留在for循环之外(Javascript)的区别是什么?