Maison  >  Article  >  interface Web  >  requête nodejs imbrication json

requête nodejs imbrication json

WBOY
WBOYoriginal
2023-05-23 19:59:06448parcourir

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

Supposons que nous ayons les données json suivantes :

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);
      }
    }
  }
}

Supposons que nous souhaitions interroger les informations sur la ville dans l'adresse de Tom, nous pouvons utiliser le code suivant :

searchJson(json, 'name', 'Tom');

Dans le code ci-dessus, nous transmettons 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'abord json.skills pour obtenir l'attribut skills de Tom, puis utilisez [0] pour obtenir la première compétence, et enfin utilisez . nameObtient 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!

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