如何通过解析 JSON 文件来分配 JavaScript 变量?
2015-03-25
2821
我有一个数据库服务器,它将运行一个脚本来每天生成这个给定的文件:
{"data": [
{"variable":"var1","value": "123"},
{"variable":"var2","value": "456"},
{"variable":"var3","value": "789"}]}
我正在尝试解析此文件以设置 HTML 画布元素的三个 javascript 变量。
到目前为止,我正在考虑解析 JSON 文件
var JSONfile = './file.json';
var getData = JSON.parse(JSONfile);
然后使用
for
循环来分配变量
for (i = 0; i < getData.length; i++) {
var getData.variable=getData.Value;
}
我希望得到以下结果:
var var1 = 123;
var var2 = 456;
var var3 = 789;
但是
var getData.variable=getData.Value;
中断了。我遗漏了什么?
1个回答
当您将文件传递给 JSON.parse() 时,它需要 JSON 字符串。
您需要做的第一件事是使用 AJAX 将文件内容放入变量中。要么使用 jQuery 之类的库(请参阅 http://api.jquery.com/jquery.getjson/ ),要么从头开始使用 JavaScript。但除非迫不得已,否则不要在“从头开始”版本上浪费时间。
使用 jQuery 将文件内容放入对象中,并将内部数据(数组)传递给名为 doSomething() 的函数:
$(function () {
$.getJSON("./file.json", function (data) {
}).success(function (data) {
myArr = data.data;
doSomething(data.data);
});
});
在这里,您将遍历传递的数组,其中包含具有 .variable 和 .value 属性的元素。这会将每个元素的两个属性都写入控制台,以方便您查看:
function doSomething(arr) {
for (i = 0; i < arr.length; i++) {
console.log(arr[i].variable + ': ' + arr[i].value);
}
}
您也可以直接通过索引访问属性,如下所示:
alert(jsonFromFile.data[2].variable); // Will alert "var3"
alert(jsonFromFile.data[2].value); // Will alert "789"
Benjamin Ray
2015-03-25