我有一个数据库服务器,它将运行一个脚本来每天生成这个给定的文件:
{"data": [
{"variable":"var1","value": "123"},
{"variable":"var2","value": "456"},
{"variable":"var3","value": "789"}]}
我正在尝试解析此文件,为HTML canvas元素设置三个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;
打破了。我错过了什么?
答案 0 :(得分:1)
JSON.parse()在传递文件时需要一个JSON字符串。
您需要做的第一件事是使用AJAX将文件的内容转换为变量。要么使用像jQuery这样的库(请参阅http://api.jquery.com/jquery.getjson/),要么在JavaScript中使用。但是不要浪费你的时间在&#34;从头开始&#34;版本,除非你必须。
使用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"