【发布时间】:2016-09-08 14:51:14
【问题描述】:
我有一个 JSON 文件 data.json,其内容如下:
[
{
"name": "Alice",
"number": 10
},
{
"name": "Bob",
"number": 20
},
{
"name": "Mary",
"number": 50
}
]
我想读取这个 JSON 文件并将key: number 的值提取到一个数组中:
number_array = [10, 20, 50]
这是我的方式:
首先我将 JSON 文件读取成一个字符串
function readTextFile(file) {
var raw_text;
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
raw_text = rawFile.responseText;
}
}
rawFile.send(null);
return raw_text;
}
但是,当我调用这个函数时,
var result = readTextFile('data.json')
我无法得到正确的结果,但得到undefined。
我在问如何读取 JSON 文件并将其存储到全局变量中(不仅在函数局部变量中)。谢谢。
【问题讨论】:
-
因为您的请求是异步的(
open的第三个参数设置为true),您的意思是使用同步请求吗? -
@PatrickEvans - 不要鼓励同步请求 - 它们已被弃用
-
@JaromandaX,不是在鼓励它,而是在问他们是否打算这样做。因为他们可能故意希望同步请求完全了解它的缺点。
-
@PatrickEvans - 也一样:p
-
对不起。我是 Javascript 新手。看来我应该寻找异步函数的返回值?
标签: javascript arrays json d3.js