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

如何通过解析JSON文件来分配JavaScript变量?,javascript,json,Javascript,Json,我有一个数据库服务器,它将每天运行一个脚本来生成此给定文件: {"data": [ {"variable":"var1","value": "123"}, {"variable":"var2","value": "456"}, {"variable":"var3","value": "789"}]} 我试图解析这个文件,为一个HTML画布元素设置三个javascript变量 到目前为止,我想我将解析JSON文件 var JSONfile = './file.json'; var getData

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

{"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 getData.variable=getData.Value中断。我缺少什么?

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

您需要做的第一件事是使用AJAX将文件的内容放入变量中。可以使用jQuery之类的库(请参阅),也可以从头开始使用JavaScript。但是不要把时间浪费在“从头开始”的版本上,除非你不得不这样做

使用jQuery将文件内容获取到对象中,并将内部数据(数组)传递给名为doSomething()的函数:

在这里,您将遍历传递的数组,该数组包含具有.variable和.value属性的元素。这会将每个元素的两个属性写入控制台,以便于查看:

    function doSomething(arr) {
        for (i = 0; i < arr.length; i++) {
            console.log(arr[i].variable + ': ' + arr[i].value);
        }
    }

JSON.parse()
API需要一个包含JSON语法的字符串,而不是文件名。@Pointy是正确的。。。您需要执行一个AJAX调用来获取JSON内容,然后解析从该调用返回的内容;[
$.getJSON('test.json',函数(数据){$.each(data.JSONdata,函数(i,f){var f.number=f.value;});})
它仍然在var f.number上中断…意外标记。如何将变量名设置为对象中的值?大部分工作正常。是否有方法从JSON中同时分配变量名和值?
var jsonFromFile.data[I]。variable=jsonFromFile.data[I].value
我已更新我的答案,以包含ajax调用并访问每个数组元素的.variable和.value属性。我继续获得一个
未知标记。
尝试使用属性命名变量时出错。
var jsonFromFile.data[I]。variable=jsonFromFile.data[I].value
是产生错误的原因。var jsonFromFile.data[i]。variable=jsonFromFile.data[i].value尝试用.value覆盖.variable。这就是您想要做的吗?我认为您的目标是将jsonFromFile中的内容提取到更有用的内容中,以便您在其他工作中使用。也许如果我知道在检索值后您如何处理这些值,我可以建议如何进行相对于手动设置
var1=123 var2=456 var3=789
,我想从JSON文件中设置这三个变量名和值。
    $(function () {
        $.getJSON("./file.json", function (data) {
        }).success(function (data) {
            myArr = data.data;
            doSomething(data.data);
        });
    });
    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"