Heim  >  Artikel  >  Web-Frontend  >  nodejs fragt JSON-Verschachtelung ab

nodejs fragt JSON-Verschachtelung ab

WBOY
WBOYOriginal
2023-05-23 19:59:06401Durchsuche

In Projekten mit Front-End- und Back-End-Trennung ist es häufig erforderlich, dass das Front-End JSON-Daten an das Back-End sendet und das Back-End die Daten über JSON-Operationen verarbeitet und sie dann an das Front-End zurückgibt -Ende. In diesem Prozess werden JSON-Daten und verschachtelte Abfragen abgefragt, was auch eine der häufigsten Operationen von NodeJS ist.

In NodeJS kann die Verwendung des JSON-Objekts bequem mit JSON-Daten arbeiten. Im Folgenden wird vorgestellt, wie eine verschachtelte JSON-Abfrage in NodeJS durchgeführt wird. 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

Angenommen, wir haben die folgenden JSON-Daten:

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

Angenommen, wir möchten die Stadtinformationen in Toms Adresse abfragen, können wir den folgenden Code verwenden:

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

Im obigen Code übergeben wir json.address.city Stadtinformationen können direkt eingeholt werden.

Angenommen, wir möchten auch den Skillnamen von Toms erstem Skill abfragen, können wir den folgenden Code verwenden:

rrreee

In diesem Code verwenden wir eine verschachtelte Abfrage, um den Namen von Toms erstem Skill zu erhalten. Verwenden Sie zuerst json.skills, um Toms skills-Attribut abzurufen, verwenden Sie dann [0], um die erste Fertigkeit abzurufen, und verwenden Sie schließlich . nameRuft den Skill-Namen ab.

Aber was sollen wir tun, wenn wir die spezifische Struktur von JSON-Daten nicht kennen oder eine Abfrage basierend auf Benutzereingaben durchführen müssen?

Wir können Rekursion verwenden, um Deep-Traversal-Abfragen für JSON-Daten durchzuführen. Das Folgende ist ein Beispiel für die Verwendung von Rekursion zur Abfrage von JSON:

rrreee

Diese Funktion akzeptiert drei Parameter: JSON-Daten, Zielattributname und Zielattributwert. Verwenden Sie innerhalb der Funktion eine for in-Schleife, um eine Deep-Traversal-Abfrage für die JSON-Daten durchzuführen. Wenn der Attributwert ein Objekt ist, wird er rekursiv durchlaufen. Andernfalls wird beurteilt, ob der Attributname mit dem Zielattribut übereinstimmt Name und ob der Attributwert mit dem Zielattributwert übereinstimmt. Wenn er übereinstimmt, wird das JSON-Objekt ausgedruckt. 🎜🎜Wenn wir beispielsweise alle Objekte mit dem Namen Tom in JSON abfragen möchten, können wir den folgenden Code verwenden: 🎜rrreee🎜Dieser Code durchläuft die JSON-Daten tiefgreifend und gibt alle Objekte mit dem Namen Tom zurück. 🎜🎜Zusammenfassung: 🎜🎜Das Manipulieren von JSON-Daten in NodeJS ist ein sehr häufiger Vorgang. In diesem Artikel werden gängige verschachtelte JSON-Abfragen als Beispiel verwendet, um vorzustellen, wie JSON und verschachtelte Abfragen in NodeJS abgefragt werden. In der tatsächlichen Entwicklung können wir je nach Situation unterschiedliche Methoden zum Betreiben und Verarbeiten von JSON-Daten auswählen. 🎜

Das obige ist der detaillierte Inhalt vonnodejs fragt JSON-Verschachtelung ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn