Heim  >  Artikel  >  Web-Frontend  >  Javascript bestimmt, ob der Schlüssel in JSON vorhanden ist

Javascript bestimmt, ob der Schlüssel in JSON vorhanden ist

王林
王林Original
2023-05-10 09:39:065500Durchsuche

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.key1obj["key1"]

2. Methode zum Ermitteln, ob ein Schlüssel in einem JSON-Objekt vorhanden ist. Um festzustellen, ob ein Objekt ein bestimmtes Attribut hat, lautet die Syntax wie folgt:

key in object

wo sich der Schlüssel befindet Der Attributname und das Objekt sind das Objekt. Wenn das Objekt dieses Attribut hat, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
  1. Bestimmen Sie beispielsweise, ob ein Objekt eine Eigenschaft namens „key1“ hat:
  2. 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)

wobei key der Attributname und object das Objekt ist. Wenn das Objekt dieses Attribut hat, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
  1. Um beispielsweise festzustellen, ob ein Objekt eine Eigenschaft namens „key1“ hat:
  2. 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.

    Um beispielsweise festzustellen, ob ein Objekt ein Attribut namens „key1“ hat:
  1. var obj = {
        key1: "value1",
        key2: "value2"
    };
    if (typeof obj.key1 !== "undefined") {
        console.log("obj有key1属性");
    } else {
        console.log("obj没有key1属性");
    }
  2. 3. Fazit

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属性");
}
#🎜 🎜# Anhand der obigen Beispiele können wir die typischen Anwendungen von drei Methoden zur Bestimmung, ob ein Schlüssel in JSON vorhanden ist, sehen. Wir können je nach den tatsächlichen Projektanforderungen verschiedene Methoden auswählen und uns kontinuierlich verbessern und eingehend lernen, während wir gleichzeitig den Code optimieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn