Maison >interface Web >Questions et réponses frontales >javascript détermine si la clé existe dans json

javascript détermine si la clé existe dans json

王林
王林original
2023-05-10 09:39:065636parcourir

JavaScript est un langage de script largement utilisé qui prend en charge le type de données JSON. Lors du traitement des données JSON, il est parfois nécessaire de déterminer si une certaine clé existe dans un objet JSON. Cet article présentera les méthodes et techniques permettant d'utiliser JavaScript pour déterminer si une clé existe dans JSON.

1. Le type de données JSON en JavaScript

JSON (JavaScript Object Notation) est un format de données léger utilisé pour l'échange de données. En JavaScript, il existe trois types de données JSON : les objets, les tableaux et les chaînes. Parmi eux, l'objet est une collection de paires clé-valeur, la clé est une chaîne et la valeur peut être n'importe quel type de données JSON. L'objet est défini comme suit :

var obj = {
    key1: "value1",
    key2: 2,
    key3: [1, 2, 3],
    key4: {
        subkey1: "subvalue1",
        subkey2: "subvalue2"
    }
};

"key1" à "key4" sont les noms d'attribut de l'objet, accessibles en utilisant la notation par points ou la notation entre crochets. Par exemple, obj.key1obj["key1"] peut obtenir la valeur de l'attribut.

2. Comment déterminer si une clé existe dans un objet JSON

  1. in Operator

in peut être utilisé pour déterminer si un objet a un certain attribut. La syntaxe est la suivante :

key in object

Où, clé. est le nom de l'attribut, l'objet est un objet. Si l'objet possède cet attribut, renvoie vrai, sinon renvoie faux.

Par exemple, pour déterminer si un objet a une propriété nommée « key1 » : la méthode

var obj = {
    key1: "value1",
    key2: "value2"
};
if ("key1" in obj) {
    console.log("obj有key1属性");
} else {
    console.log("obj没有key1属性");
}
  1. hasOwnProperty La méthode

hasOwnProperty peut être utilisée pour déterminer si un objet a ses propres propriétés. La syntaxe est la suivante :

object.hasOwnProperty(key)
.

où key est un nom d'attribut, object est un objet. Si l'objet possède cet attribut, renvoie vrai, sinon renvoie faux.

Par exemple, pour déterminer si un objet possède une propriété nommée "key1":

var obj = {
    key1: "value1",
    key2: "value2"
};
if (obj.hasOwnProperty("key1")) {
    console.log("obj有key1属性");
} else {
    console.log("obj没有key1属性");
}
  1. typeof et undefined

En JavaScript, si vous accédez à une propriété qui n'existe pas, undefined est renvoyé. Par conséquent, vous pouvez utiliser typeof et undefined pour déterminer si l'attribut existe. La syntaxe est la suivante :

typeof object.key !== "undefined"

où key est le nom de l'attribut et object est l'objet. Si l'objet possède cet attribut, renvoie vrai, sinon renvoie faux.

Par exemple, pour déterminer si un objet possède une propriété nommée "key1" :

var obj = {
    key1: "value1",
    key2: "value2"
};
if (typeof obj.key1 !== "undefined") {
    console.log("obj有key1属性");
} else {
    console.log("obj没有key1属性");
}

3. Conclusion

En JavaScript, il existe trois façons de déterminer si un objet JSON possède une clé : l'opérateur in, la méthode hasOwnProperty et le typeof et indéfini. La méthode à utiliser dépend du scénario d'utilisation et des habitudes personnelles.

Il convient de noter que lorsque vous utilisez l'opérateur in et la méthode hasOwnProperty, vous devez faire attention à la question des propriétés héritées. Si un objet n'est pas sa propre propriété, mais une propriété trouvée dans la chaîne de prototypes, l'opérateur in et la méthode hasOwnProperty renverront false. Par conséquent, lorsque vous utilisez ces deux méthodes, vous pouvez utiliser Object.prototype.hasOwnProperty.call(obj, key) en combinaison pour déterminer si une propriété est une propriété de l'objet lui-même.

4. Exemple

Ce qui suit est un exemple complet qui montre comment utiliser trois méthodes pour déterminer si un objet possède une clé :

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属性");
}

Grâce à l'exemple ci-dessus, nous pouvons voir qu'il existe trois façons de déterminer si une clé existe en JSON Applications typiques dans la réalité. Nous pouvons choisir différentes méthodes en fonction des besoins réels du projet, et nous améliorer et apprendre en profondeur en continu tout en optimisant le code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn