Rumah  >  Artikel  >  hujung hadapan web  >  javascript menentukan sama ada kunci wujud dalam json

javascript menentukan sama ada kunci wujud dalam json

王林
王林asal
2023-05-10 09:39:065500semak imbas

JavaScript ialah bahasa skrip yang digunakan secara meluas yang menyokong jenis data JSON. Apabila memproses data JSON, kadangkala adalah perlu untuk menentukan sama ada kunci tertentu wujud dalam objek JSON. Artikel ini akan memperkenalkan kaedah dan teknik tentang cara menggunakan JavaScript untuk menentukan sama ada kunci wujud dalam JSON.

1. Jenis data JSON dalam JavaScript

JSON (JavaScript Object Notation) ialah format data ringan yang digunakan untuk pertukaran data. Dalam JavaScript, terdapat tiga jenis data JSON: objek, tatasusunan dan rentetan. Antaranya, objek ialah koleksi pasangan nilai kunci, kuncinya ialah rentetan, dan nilainya boleh berupa mana-mana jenis data JSON. Objek ditakrifkan seperti berikut:

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

dengan "key1" kepada "key4" ialah nama atribut objek, yang boleh diakses menggunakan notasi titik atau notasi kurungan segi empat sama, seperti obj.key1 dan obj["key1"] Dapatkan nilai atribut.

2 Kaedah untuk menentukan sama ada kunci wujud dalam objek JSON

  1. dalam operator

Operator dalam boleh digunakan untuk menentukan sama ada objek wujud Atribut, sintaksnya adalah seperti berikut:

key in object

Antaranya, kunci ialah nama atribut dan objek ialah objek. Jika objek mempunyai atribut ini, mengembalikan benar, sebaliknya mengembalikan palsu.

Sebagai contoh, untuk menentukan sama ada objek mempunyai sifat bernama "key1":

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

kaedah hasOwnProperty boleh digunakan untuk menentukan sama ada objek Ia mempunyai atributnya sendiri, dan sintaksnya adalah seperti berikut:

object.hasOwnProperty(key)

Antaranya, kunci ialah nama atribut dan objek ialah objek. Jika objek mempunyai atribut ini, mengembalikan benar, sebaliknya mengembalikan palsu.

Sebagai contoh, untuk menentukan sama ada objek mempunyai sifat bernama "key1":

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

Dalam JavaScript, jika anda mengakses an undefined Jika harta itu wujud, undefined dikembalikan. Oleh itu, anda boleh menggunakan typeof dan undefined untuk menentukan sama ada atribut itu wujud Sintaksnya adalah seperti berikut:

typeof object.key !== "undefined"

di mana kunci ialah nama atribut dan objek ialah objek. Jika objek mempunyai atribut ini, mengembalikan benar, sebaliknya mengembalikan palsu.

Contohnya, untuk menentukan sama ada objek mempunyai atribut bernama "key1":

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

3 Kesimpulan

Dalam JavaScript, tentukan sama ada objek JSON mempunyai kunci tertentu Terdapat tiga kaedah: dalam operator, kaedah hasOwnProperty dan jenis dan tidak ditentukan. Kaedah mana yang hendak digunakan bergantung pada senario penggunaan dan tabiat peribadi.

Perlu diperhatikan bahawa apabila menggunakan kaedah in operator dan hasOwnProperty, anda harus memberi perhatian kepada isu harta warisan. Jika objek bukan hartanya sendiri, tetapi harta yang ditemui dalam rantaian prototaip, kedua-dua pengendali dalam dan kaedah hasOwnProperty akan mengembalikan palsu. Oleh itu, apabila menggunakan kedua-dua kaedah ini, anda boleh menggunakan Object.prototype.hasOwnProperty.call(obj, key) dalam kombinasi untuk menentukan sama ada sesuatu harta ialah harta objek itu sendiri.

4. Contoh

Berikut ialah contoh lengkap yang menunjukkan cara menggunakan tiga kaedah untuk menentukan sama ada objek wujud dengan kunci tertentu:

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

Melalui contoh di atas , kita boleh Lihat aplikasi kehidupan sebenar tipikal bagi tiga kaedah untuk menentukan sama ada kunci wujud dalam JSON. Kita boleh memilih kaedah yang berbeza mengikut keperluan projek sebenar, dan terus menambah baik serta belajar secara mendalam sambil mengoptimumkan kod.

Atas ialah kandungan terperinci javascript menentukan sama ada kunci wujud dalam json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn