Dans les projets avec séparation front-end et back-end, il est souvent nécessaire que le front-end envoie des données json au back-end, et le back-end traite les données via des opérations json puis les renvoie au front-end. -fin. Dans ce processus, cela implique d'interroger des données json et des requêtes imbriquées, ce qui est également l'une des opérations courantes de nodejs.
Dans nodejs, l'utilisation de l'objet JSON
peut facilement opérer sur les données json. Ce qui suit explique comment effectuer une requête imbriquée json dans nodejs. JSON
对象可以方便地对json数据进行操作。下面将介绍如何在nodejs中进行json嵌套查询。
假设有如下json数据:
{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Shenzhen", "district": "Futian" }, "skills": [ { "name": "Java", "level": "Expert" }, { "name": "JavaScript", "level": "Intermediate" } ] }
假设我们想要查询Tom的地址中的城市信息,可以使用以下代码:
const json = {...}; // 假设json数据如上 const city = json.address.city; console.log(city); // Shenzhen
上述代码中,我们通过json.address.city
的方式可以直接获取到城市信息。
假设我们还想要查询Tom的第一项技能的技能名,可以使用以下代码:
const json = {...}; // 假设json数据如上 const skillName = json.skills[0].name; console.log(skillName); // Java
在该代码中,我们使用了嵌套查询来获取Tom的第一项技能名。首先使用json.skills
获取到Tom的skills
属性,再通过[0]
获取到第一项技能,最后通过.name
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); } } } }
searchJson(json, 'name', 'Tom');
json.address.city
Les informations sur la ville peuvent être obtenues directement. Supposons que nous souhaitions également interroger le nom de la première compétence de Tom, nous pouvons utiliser le code suivant : rrreee
Dans ce code, nous utilisons une requête imbriquée pour obtenir le nom de la première compétence de Tom. Utilisez d'abordjson.skills
pour obtenir l'attribut skills
de Tom, puis utilisez [0]
pour obtenir la première compétence, et enfin utilisez . name
Obtient le nom de la compétence. Mais que devons-nous faire si nous ne connaissons pas la structure spécifique des données json ou si nous devons interroger en fonction des entrées de l'utilisateur ? Nous pouvons utiliser la récursivité pour effectuer des requêtes de traversée approfondie sur les données json. Voici un exemple d'utilisation de la récursion pour interroger json : rrreee
Cette fonction accepte trois paramètres, qui sont les données json, le nom de l'attribut cible et la valeur de l'attribut cible. À l'intérieur de la fonction, utilisez une boucle for in pour effectuer une requête de parcours approfondi sur les données json. Si la valeur de l'attribut est un objet, elle sera parcourue de manière récursive. Sinon, il sera jugé si le nom de l'attribut est égal à l'attribut cible. nom et si la valeur de l'attribut est égale à la valeur de l'attribut cible. Si elle correspond, elle sera imprimée. 🎜🎜Par exemple, si nous voulons interroger tous les objets nommés Tom en json, nous pouvons utiliser le code suivant : 🎜rrreee🎜Ce code traversera en profondeur les données json et renverra tous les objets nommés Tom. 🎜🎜Résumé : 🎜🎜La manipulation des données json dans nodejs est une opération très courante. Cet article prend comme exemple les requêtes imbriquées json courantes pour présenter comment interroger json et les requêtes imbriquées dans nodejs. Dans le développement réel, nous pouvons choisir différentes méthodes pour exploiter et traiter les données json en fonction de situations spécifiques. 🎜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!