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' ... –