javascript - JSON数据不能存储在变量中
问题描述
我试图将 JSON 文件的内容加载到变量中。之前,变量看起来像这样:
var Data = {
teams : [
["Team 1", "Team 2"],
["Team 3", "Team 4"]
],
results : [
[[1,2], [3,4]],
[[4,6], [2,1]]
]}
现在我有一个看起来像这样的 JSON 文件:
{"teams":[["Team 1","Team 2"],["Team 3","Team 4"],"results":[[[[1,2],[3,4]],[[4,6],[2,1]]]}
现在我希望 JSON 文件的内容之前存储在数据变量中。我用 Ajax 试了一下,看起来像这样:
$.ajax({
type: "GET",
dataType : 'json',
async: true,
url: 'data.json',
success: function(data) {
console.log(data)
var Data = data
},
});
Console.log 完美运行,但数据未保存在变量中,我收到错误:Uncaught ReferenceError: Data is not defined
.
我也尝试过var Data = JSON.parse(data)
,但这似乎也不起作用。
现在我被困在没有任何线索的地方。
提前感谢您的帮助。
解决方案
我不确定您的代码在ajax
通话后是什么样子,但我猜您正在使用的代码Data
是在ajax
通话后。ajax
是异步的。这意味着您的代码在继续之前不会等待它完成。任何需要等到完成获取数据后的代码,您都可以放入该.success
函数。另外,值得注意的是,只有在请求成功success
时才会被调用。ajax
如果你想处理错误,你可以使用.error
类似这样的东西:
$.ajax({
type: "GET",
dataType : 'json',
async: true,
url: 'data.json',
success: function(data) {
console.log(data)
var Data = data;
// Anything that needs to use Data would go inside here
},
error: function(err) {
// handle errors
console.error(err);
}
});
// Any code here will not wait until `Data` is defined
// console.log(Data) // error
推荐阅读
- python - 在 Python 中从 API 服务器重定向下载文件
- kendo-ui - 剑道现有表搜索
- javascript - javascript类方法中的异步/等待,内部调用htpps
- android-studio - 为什么我的 Flutter Inspector 面板不像其他工具一样停靠在 IDE 的右侧?
- mysql - 是触发还是什么?
- css - 如何制作适合所有维度的 React-Native 应用程序?
- python - 仅在 csv 中获取一个条目。Python beautifulsoup,请求,硒
- react-native - useValues 不是函数,react-native-redash
- node.js - 通过 Hamachi VPN 连接到 SQL Server - SSMS 有效,Node 无效
- c++ - QT 类型被外部库定义为 int?