>  기사  >  웹 프론트엔드  >  nodejs 쿼리 json 중첩

nodejs 쿼리 json 중첩

WBOY
WBOY원래의
2023-05-23 19:59:06452검색

프런트엔드와 백엔드가 분리된 프로젝트에서는 프런트엔드에서 json 데이터를 백엔드에 보내고 백엔드에서 json 작업을 통해 데이터를 처리한 후 프런트엔드로 반환하는 경우가 종종 있습니다. -끝. 이 프로세스에는 json 데이터 쿼리와 중첩 쿼리가 포함되며, 이는 nodejs의 일반적인 작업 중 하나이기도 합니다.

nodejs에서는 JSON 객체를 사용하면 json 데이터에 대해 편리하게 작업할 수 있습니다. 다음은 nodejs에서 json 중첩 쿼리를 수행하는 방법을 소개합니다. 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

다음과 같은 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);
      }
    }
  }
}

Tom의 주소에서 도시 정보를 쿼리하고 싶다고 가정하면 다음 코드를 사용할 수 있습니다.

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

위 코드에서 json.address.city를 전달합니다. 도시정보를 직접 얻을 수 있습니다.

Tom의 첫 번째 스킬 이름도 쿼리한다고 가정하면 다음 코드를 사용할 수 있습니다.

rrreee

이 코드에서는 중첩 쿼리를 사용하여 Tom의 첫 번째 스킬 이름을 가져옵니다. 먼저 json.skills를 사용하여 Tom의 skills 속성을 ​​가져온 다음 [0]를 사용하여 첫 번째 기술을 가져온 다음 마지막으로 를 사용합니다. name스킬 이름을 가져옵니다.

하지만 json 데이터의 구체적인 구조를 모르거나 사용자 입력을 기반으로 쿼리해야 하는 경우 어떻게 해야 할까요?

재귀를 사용하여 json 데이터에 대한 심층 순회 쿼리를 수행할 수 있습니다. 다음은 재귀를 사용하여 json을 쿼리하는 예입니다.

rrreee

이 함수는 json 데이터, 대상 속성 이름 및 대상 속성 값의 세 가지 매개 변수를 허용합니다. 함수 내에서 for in 루프를 사용하여 json 데이터에 대한 심층 순회 쿼리를 수행합니다. 속성 값이 객체이면 재귀적으로 순회되며, 그렇지 않으면 속성 이름이 대상 속성과 동일한지 판단됩니다. 이름과 속성 값이 대상 속성 값과 동일한지 여부가 일치하면 json 객체가 인쇄됩니다. 🎜🎜예를 들어, json에서 Tom이라는 모든 개체를 쿼리하려면 다음 코드를 사용할 수 있습니다. 🎜rrreee🎜이 코드는 json 데이터를 깊이 탐색하여 Tom이라는 모든 개체를 반환합니다. 🎜🎜요약: 🎜🎜nodejs에서 json 데이터를 조작하는 것은 매우 일반적인 작업입니다. 이 기사에서는 일반적인 json 중첩 쿼리를 예로 들어 nodejs에서 json 및 중첩 쿼리를 쿼리하는 방법을 소개합니다. 실제 개발에서는 특정 상황에 따라 json 데이터를 운영하고 처리하는 다양한 방법을 선택할 수 있습니다. 🎜

위 내용은 nodejs 쿼리 json 중첩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.