我尝试进行简单的JSON调用,但我无法访问JSON文件,控制台告诉我:"未捕获的SyntaxError:意外的令牌u"
这是我的JSON文件' universo.json':
{"menu": {
"chiave": "valore",
"key": "value",
"oggetto": {
"sottoggetto": [
{"chiave": "valore", "chiave2": "valore2"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
这是我的JS文件:
$(document).ready(function(){
var Richiesta = new XMLHttpRequest();
Richiesta.open('GET','universo.json',true);
Richiesta.responseType = 'JSON';
Richiesta.onload = function() {
valore = JSON.parse(this['menu']);
console.log('yes');
};
Richiesta.send();
});
非常感谢任何帮助。谢谢你。
答案 0 :(得分:2)
在onload
处理程序中,this
是XMLHttpRequest实例,它没有menu
属性。访问它将产生undefined
,JSON.parse
将对其进行字符串化,"undefined"
无效JSON(以意外的u
开头)。
由于您已将.responseType
设置为JSON,因此您实际上不需要解析任何内容。只需访问该对象。
Richiesta.responseType = 'json'; // seems to require lowercase
Richiesta.onload = function() {
var obj = this.response;
// or: = Richiesta.response
// or: = JSON.parse(this.responseText); // for backwards-compatibility
var valore = obj.menu;
console.log('yes', valore);
};