Dalam projek dengan pemisahan bahagian hadapan dan bahagian belakang, selalunya perlu bagi bahagian hadapan untuk menghantar data json ke bahagian belakang, dan bahagian belakang memproses data melalui operasi json dan kemudian mengembalikannya kepada bahagian hadapan. Dalam proses ini, ia melibatkan pertanyaan data json dan pertanyaan bersarang, yang juga merupakan salah satu operasi biasa nodejs.
Dalam nodejs, menggunakan objek JSON
boleh beroperasi dengan mudah pada data json. Berikut akan memperkenalkan cara melaksanakan pertanyaan bersarang json dalam nodejs.
Andaikan terdapat data json berikut:
{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Shenzhen", "district": "Futian" }, "skills": [ { "name": "Java", "level": "Expert" }, { "name": "JavaScript", "level": "Intermediate" } ] }
Andaikan kita ingin menanyakan maklumat bandar dalam alamat Tom, kita boleh menggunakan kod berikut:
const json = {...}; // 假设json数据如上 const city = json.address.city; console.log(city); // Shenzhen
Dalam perkara di atas kod, kami lulus json.address.city
boleh terus mendapatkan maklumat bandar.
Andaikan kami juga ingin menanyakan nama kemahiran kemahiran pertama Tom, anda boleh menggunakan kod berikut:
const json = {...}; // 假设json数据如上 const skillName = json.skills[0].name; console.log(skillName); // Java
Dalam kod ini, kami menggunakan pertanyaan bersarang untuk mendapatkan kemahiran pertama Tom kemahiran A nama. Mula-mula gunakan json.skills
untuk mendapatkan atribut skills
Tom, kemudian gunakan [0]
untuk mendapatkan kemahiran pertama, dan akhirnya gunakan .name
untuk mendapatkan nama kemahiran.
Tetapi apakah yang perlu kita lakukan jika kita tidak mengetahui struktur khusus data json, atau perlu membuat pertanyaan berdasarkan input pengguna?
Kami boleh menggunakan rekursi untuk melaksanakan pertanyaan traversal mendalam pada data json. Berikut ialah contoh penggunaan rekursi untuk menanyakan json:
function searchJson(json, targetKey, targetValue) { for (let key in json) { if (typeof json[key] === 'object') { searchJson(json[key], targetKey, targetValue); } else { if (key === targetKey && json[key] === targetValue) { console.log(json); } } } }
Fungsi ini menerima tiga parameter, iaitu data json, nama atribut sasaran dan nilai atribut sasaran. Di dalam fungsi, gunakan gelung for untuk melakukan pertanyaan traversal mendalam pada data json Jika nilai atribut ialah objek, ia akan dilalui secara rekursif nama dan sama ada nilai atribut adalah sama dengan nilai atribut sasaran Jika ia sepadan, ia akan dicetak objek json.
Sebagai contoh, jika kita ingin menanyakan semua objek bernama Tom dalam json, kita boleh menggunakan kod berikut:
searchJson(json, 'name', 'Tom');
Kod ini akan merentasi data json secara mendalam dan mengembalikan semua objek bernama Tom. objek.
Ringkasan:
Memanipulasi data json dalam nodejs ialah operasi yang sangat biasa. Dalam pembangunan sebenar, kita boleh memilih kaedah yang berbeza untuk mengendalikan dan memproses data json mengikut situasi tertentu.
Atas ialah kandungan terperinci nodejs pertanyaan json bersarang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!