我试图通过外部URL在我的网站上显示一些JSON数据。运行脚本时,我从chrome控制台获得此错误:
未捕获的SyntaxError:位于0位置的JSON中的意外标记u JSON.parse()
使用Javascript:
var json = $.getJSON("url");
var a = JSON.parse(json.responseText);
var result = a.query.results.rate;
document.write(result[0].Rate);
当我在控制台中输入console.log(result)
时,它会返回 undefined
JSON:
{
"query": {
"count": 6,
"created": "2016-12-21T19:18:22Z",
"lang": "en-US",
"diagnostics": {
"url": [{
"execution-start-time": "1",
"execution-stop-time": "2",
"execution-time": "1",
"content": "url"
}, {
"execution-start-time": "5",
// more of this
]
"results": {
"rate": [{
"id": "GBPUSD",
"Name": "GBP/USD",
"Rate": "1.2371",
},
{
"id": "GBPEUR",
// more of this
},
}
]
}
我无法对JSON文件进行任何更改,但我检查了它并且它是有效的。
P.S。当我在chrome控制台中编写JavaScript代码时,它可以工作。
提前致谢。
答案 0 :(得分:4)
这是你的问题:
$.getJSON("url").done(function(response) {
var result = response.query.results.rate;
document.write(result[0].Rate);
});
这是一个异步操作,你需要给它加载时间,这样就可以了:
TreeNode
答案 1 :(得分:0)
如果你执行每一行都有一点时间在AS响应将有时间完成并填充responseText,它将在控制台中工作。 $ .getJSON完成后,您需要在回调或承诺链中使用主代码。
...也许
export default class App extends Component {
render() {
return (<div> (this.props.children} </div>):
}
}