1
我有一个JSON格式文件的几个对象有相同的字符串,但不同的值:如何声明一个变量的值是一个由JS中的变量组成的对象?
{
"object_1": {
"data1": [1, -1],
"data2": [2, -1],
"data3": [3, -1],
},
"object_2": {
"data1": [4, -1]
"data2": [5, -1],
"data3": [6, -1],
}
}
我能够与getJSON()
检索对象的数据:
var url = "https://website.com/file.json";
$.getJSON(url, function (json) {
var mydata1 = json.object_1.data1;
var mydata2 = json.object_1.data2;
var mydata3 = json.object_1.data3;
});
但我有几个对象,我不想为它们重复相同的三行。我想创建这些变量mydata1
mydata2
和mydata3
通过使用与对象id作为输入的函数。
我的问题是,我不知道如何创建一个变量,当它的值是一个变量组成的对象。例如,这里的id
是一个用于选择JSON对象的变量:object_1
或object_2
。
$.getJSON(url, function (json) {
var id = 1 // use id = 1 on page load
function loadJSON(id) {
// all these declaration fail
eval("var mydata1 = string.concat('json.object_', id, '.data1')");
var mydata1 = string.concat("json.object_", id, ".data1");
var mydata1 = window["json.object_" + id + ".data1"];
);
// then rewrite the data on click
$('#button_2').click(function() {
loadJSON(2);
});
$('#button_1').click(function() {
loadJSON(1);
});
)},
如何在函数中声明这些变量?
谢谢
什么,你现在要做的只能用'的eval()'完成,但真的没有点。不要使用单个变量,而要使用对象并构造对象属性名称。 – Pointy
'json ['object _'+ id] .data1' ... –