我有一个关于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”的变量
提前致谢
答案 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