Ich habe mehrere Objekte in einer JSON formatierte Datei mit dem gleichen String aber unterschiedlichen Werten:Wie deklariert man eine Variable, wenn ihr Wert ein Objekt ist, das mit einer Variablen in JS zusammengesetzt ist?
{
"object_1": {
"data1": [1, -1],
"data2": [2, -1],
"data3": [3, -1],
},
"object_2": {
"data1": [4, -1]
"data2": [5, -1],
"data3": [6, -1],
}
}
Ich bin in der Lage, die Daten in den Objekten mit getJSON()
abzuzurufen:
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;
});
Aber ich habe mehr Objekte und ich möchte nicht die gleichen drei Zeilen für alle von ihnen duplizieren. Ich möchte diese Variablen mydata1
mydata2
und mydata3
erstellen, indem Sie eine Funktion mit der Objekt-ID als Eingabe verwenden.
Mein Problem ist, dass ich nicht herausfinden kann, wie man eine Variable erstellt, wenn ihr Wert ein Objekt ist, das aus einer Variablen besteht. Zum Beispiel ist id
eine Variable, die zur Auswahl des JSON-Objekts verwendet wird: object_1
oder 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);
});
)},
Wie kann ich diese Variablen in einer Funktion deklarieren?
Danke,
Was Sie versuchen, nur zu tun mit 'eval()', aber es gibt wirklich keinen Sinn gemacht werden . Verwenden Sie nicht einzelne Variablen, sondern ein Objekt, und konstruieren Sie die Objekteigenschaftsnamen. – Pointy
'json ['objekt _' + id] .data1' ... –