Der Grund, warum Sie data.car.name.year nicht tun können, liegt an den Regeln von JSON. Wenn du das durchkreuzt, kannst du es ein bisschen besser sehen.
OPTION 1:
data = {'car':
{
'name': 'Mazda'
},
'year': 2006
};
Jetzt können Sie sehen, dass, wenn Sie car
zugreifen zu können, dann auf das Objekt gerichtet sind, es mit name
darin enthält. Behandeln Sie es wie eine Ordnerstruktur auf Ihrem Computer.
/Auto/name = { 'name': 'Mazda'} /Auto/Jahr = 2006
Vielleicht ist das, was Sie stattdessen wollen:
data = {
'car':
{
'name': 'Mazda',
'year': 2006
}
};
Sie data.car.year
tun können diese Weise
Option 2:
data.car.name.year = data.year
Dies w ill duplizieren Sie die Eigenschaft auf dem Objekt, aber dann können Sie es als data.car.name.year
Eine weitere komplexe Art und Weise verwenden:
Sie können von anderen Objekten in haben Javascript-Objekte erben. Ich würde vorschlagen, für ES6-Klassen oder TypeScript zu gehen.
Beide müssen in Javascript kompiliert werden, um in den meisten Browsern für die neuesten Funktionen ausgeführt zu werden.
Von Typoskript tiefen Tauchgang:
class Point3D extends Point {
z: number;
constructor(x: number, y: number, z: number) {
super(x, y);
this.z = z;
}
add(point: Point3D) {
var point2D = super.add(point);
return new Point3D(point2D.x, point2D.y, this.z + point.z);
}
}
Hier ist eine ähnliche gerade JS Implementierung
var Point3D = (function (_super) {
__extends(Point3D, _super);
function Point3D(x, y, z) {
_super.call(this, x, y);
this.z = z;
}
Point3D.prototype.add = function (point) {
var point2D = _super.prototype.add.call(this, point);
return new Point3D(point2D.x, point2D.y, this.z + point.z);
};
return Point3D;
})(Point);
Ihre Struktur gesehen, Um "2006": data.year "Mazda" zu erhalten: data.car.name Sie sollten ein wenig über JSON gelesen Machen Sie sich mit Elementverschachtelung vertraut. – technico
In diesem Fall sind "Auto" und "Jahr" keine Kinder von Daten, sondern eher Eigenschaften, die auf diese Weise keine hierarchische Beziehung haben. Die Art von "Auto" ist selbst ein Objekt, das keine Beziehung zu Daten hat. – Alan
Angesichts Ihrer vorhandenen Struktur, kann es nicht getan werden, da ein Objekt von vielen anderen Objekten oder Variablen referenziert werden kann, so dass es keine Möglichkeit geben würde, zu wissen, welche Sie wollen. Mit der prototypischen Vererbung würde es auch nicht funktionieren, weil sie nicht zirkulär sein können. Sie können einen expliziten Zirkelverweis für das Objekt selbst erstellen, aber dann benötigen Sie eine Eigenschaft, die dem verschachtelten Objekt hinzugefügt wird. –