JavaScript ist eine weit verbreitete Skriptsprache, die den JSON-Datentyp unterstützt. Bei der Verarbeitung von JSON-Daten muss manchmal festgestellt werden, ob ein bestimmter Schlüssel in einem JSON-Objekt vorhanden ist. In diesem Artikel werden Methoden und Techniken vorgestellt, wie Sie mithilfe von JavaScript feststellen können, ob ein Schlüssel in JSON vorhanden ist.
1. JSON-Datentyp in JavaScript
JSON (JavaScript Object Notation) ist ein leichtes Datenformat, das für den Datenaustausch verwendet wird. In JavaScript gibt es drei JSON-Datentypen: Objekte, Arrays und Strings. Unter diesen ist das Objekt eine Sammlung von Schlüssel-Wert-Paaren, der Schlüssel ist eine Zeichenfolge und der Wert kann ein beliebiger JSON-Datentyp sein. Das Objekt ist wie folgt definiert:
var obj = { key1: "value1", key2: 2, key3: [1, 2, 3], key4: { subkey1: "subvalue1", subkey2: "subvalue2" } };
wobei „key1“ bis „key4“ die Attributnamen des Objekts sind, auf die über die Punktnotation oder die eckige Klammernotation zugegriffen werden kann, zum Beispiel #🎜🎜 # kann den Attributwert erhalten. obj.key1
和obj["key1"]
key in object
var obj = { key1: "value1", key2: "value2" }; if ("key1" in obj) { console.log("obj有key1属性"); } else { console.log("obj没有key1属性"); }
hasOwnProperty method
hasOwnProperty Mit der Methode kann ermittelt werden, ob ein Objekt über eigene Attribute verfügt. Die Syntax lautet wie folgt:object.hasOwnProperty(key)
var obj = { key1: "value1", key2: "value2" }; if (obj.hasOwnProperty("key1")) { console.log("obj有key1属性"); } else { console.log("obj没有key1属性"); }
typeof und undefiniert
#🎜 🎜# Wenn Sie in JavaScript auf eine nicht vorhandene Eigenschaft zugreifen, wird undefiniert zurückgegeben. Daher können Sie typeof und undefiniert verwenden, um festzustellen, ob das Attribut vorhanden ist. Die Syntax lautet wie folgt:
typeof object.key !== "undefined"
wobei key der Attributname und object das Objekt ist. Wenn das Objekt dieses Attribut hat, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
var obj = { key1: "value1", key2: "value2" }; if (typeof obj.key1 !== "undefined") { console.log("obj有key1属性"); } else { console.log("obj没有key1属性"); }
Bestimmen Sie in JavaScript einen JSON Objekt Es gibt drei Möglichkeiten, zu überprüfen, ob ein Schlüssel vorhanden ist: im Operator, in der hasOwnProperty-Methode und in typeof und undefiniert. Welche Methode zu verwenden ist, hängt vom Nutzungsszenario und den persönlichen Gewohnheiten ab.
Es ist erwähnenswert, dass Sie bei der Verwendung des in-Operators und der hasOwnProperty-Methode auf das Problem der geerbten Eigenschaften achten sollten. Wenn es sich bei einem Objekt nicht um eine eigene Eigenschaft, sondern um eine in der Prototypenkette gefundene Eigenschaft handelt, geben sowohl der in-Operator als auch die hasOwnProperty-Methode „false“ zurück. Daher können Sie bei Verwendung dieser beiden Methoden Object.prototype.hasOwnProperty.call(obj, key) in Kombination verwenden, um zu bestimmen, ob eine Eigenschaft eine Eigenschaft des Objekts selbst ist.
4. Beispiel
Das Folgende ist ein vollständiges Beispiel, das zeigt, wie man mit drei Methoden ermittelt, ob ein Objekt mit einem bestimmten Schlüssel existiert:
var obj = { key1: "value1", key2: "value2" }; // 方法1:in运算符 if ("key1" in obj) { console.log("方法1:in运算符,obj有key1属性"); } else { console.log("方法1:in运算符,obj没有key1属性"); } // 方法2:hasOwnProperty方法 if (obj.hasOwnProperty("key1")) { console.log("方法2:hasOwnProperty方法,obj有key1属性"); } else { console.log("方法2:hasOwnProperty方法,obj没有key1属性"); } // 方法3:typeof和undefined if (typeof obj.key1 !== "undefined") { console.log("方法3:typeof和undefined方法,obj有key1属性"); } else { console.log("方法3:typeof和undefined方法,obj没有key1属性"); } // 兼容继承属性 var Person = function() {}; Person.prototype.name = "Tom"; var p = new Person(); p.age = 20; if ("name" in p) { console.log("兼容继承属性,p有name属性"); } if (p.hasOwnProperty("name")) { console.log("兼容继承属性,p没有name属性"); } if (Object.prototype.hasOwnProperty.call(p, "name")) { console.log("兼容继承属性,p没有name属性"); }
Das obige ist der detaillierte Inhalt vonJavascript bestimmt, ob der Schlüssel in JSON vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!