如何通过解析JSON文件来分配JavaScript变量?

时间:2015-03-25 18:41:46

标签: javascript json

我有一个数据库服务器,它将运行一个脚本来每天生成这个给定的文件:

{"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;打破了。我错过了什么?

1 个答案:

答案 0 :(得分:1)

JSON.parse()在传递文件时需要一个JSON字符串。

您需要做的第一件事是使用AJAX将文件的内容转换为变量。要么使用像jQuery这样的库(请参阅http://api.jquery.com/jquery.getjson/),要么在JavaScript中使用。但是不要浪费你的时间在&#34;从头开始&#34;版本,除非你必须。

使用jQuery将文件内容放入对象中,并将内部数据(数组)传递给名为doS​​omething()的函数:

    $(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"