使用 JavaScript 中的根节点迭代 JSON

发布日期:2026-07-02 12:43:02   来源 : 杭州电子商务研究院    浏览量 :18
杭州电子商务研究院 发布日期:2026-07-02 12:43:02  
18

介绍

在应用程序中集成后端 API 时,前端开发人员的很大一部分工作包括处理 JSON 响应。JSON 响应通常很复杂,难以一下子理解。但是,它们的复杂结构在解密返回到前端的数据方面是合理的。因此,您可能会收到一个 JSON 响应,其中的根节点指示相应对象的含义。

在本指南中,您将学习如何识别和理解具有根节点的 JSON 响应,并最终使用 React 中的 JavaScript 对它们进行迭代。

带根节点的 JSON

考虑以下 JSON 文件。您可以在 dummy-json API文档中找到它。

下面的 JSON 文件包含四个节点或属性:usersimagescoordinatesprice。所有节点在节点树中都处于同一级别,您可以通过访问这些属性来验证这一点。例如,如果您将此响应存储在名为resp 的对象中,则可以访问usersimage属性,如resp.usersresp.images。因此,给定的 JSON 不包含根节点。

      {
  "users": [
    {
      "id": 0,
      "name": "Adam Carter",
      "work": "Unilogic",
      "email": "adam.carter@unilogic.com",
      "dob": "1978",
      "address": "83 Warner Street",
      "city": "Boston",
      "optedin": true
    },
    {
      "id": 1,
      "name": "Leanne Brier",
      "work": "Connic",
      "email": "leanne.brier@connic.org",
      "dob": "1987",
      "address": "9 Coleman Avenue",
      "city": "Toronto",
      "optedin": false
    }
  ],
  "images": [
    "img0.png",
    "img1.png",
    "img2.png"
  ],
  "coordinates": {
    "x": 35.12,
    "y": -21.49
  },
  "price": "$59,395"
}
    

让我们修改上面的 JSON 响应,使其包含根节点。这意味着要访问这些属性,您必须比之前的访问方式低一级。

      "data":{
    "users": [
        {
          "id": 0,
          "name": "Adam Carter",
          "work": "Unilogic",
          "email": "adam.carter@unilogic.com",
          "dob": "1978",
          "address": "83 Warner Street",
          "city": "Boston",
          "optedin": true
        },
        {
          "id": 1,
          "name": "Leanne Brier",
          "work": "Connic",
          "email": "leanne.brier@connic.org",
          "dob": "1987",
          "address": "9 Coleman Avenue",
          "city": "Toronto",
          "optedin": false
        }
      ],
      "images": [
        "img0.png",
        "img1.png",
        "img2.png"
      ],
      "coordinates": {
        "x": 35.12,
        "y": -21.49
      },
      "price": "$59,395"
 }
    

现在,您的 JSON 响应有一个名为data 的根节点,并且您的属性将以resp.data.users、 resp.data.images等形式访问。以这种方式构造 JSON 响应的需要是了解整个对象对应的内容。在现实生活中,您可以想象此响应对应于在电子商务网站上销售其产品的卖家。根节点可以是sellers_product_1355,从而了解数据的含义。现在您已经了解了带有根节点的 JSON,让我们看看如何在 React 中使用 JavaScript 对其进行迭代。

使用根节点迭代 JSON

在你的 React 应用程序中,创建一个data.js文件并将上述响应导出为对象。

      export default {
"data":{
    ...
  }
}
    

现在,您可以像从后端 API 获取该对象一样将该对象作为常规 JavaScript 对象导入。任何 JSON 属性都将通过首先访问根节点来访问。查看以下控制台日志以了解如何访问这些属性

      import React from 'react';
import response from './data';

function App() {
  console.log('users: ',response.data.users);
  console.log('images: ',response.data.images);
  console.log('images: ',response.data.coordinates);
  console.log('price: ',response.data.price);
  return (
    <div className="App">
 
    </div>
  );
}

export default App;
    

请注意,图片用户都是数组,因此您可以使用JSX 中的map()方法对它们进行迭代,如下所示。您也可以使用常规 for 循环。

      import React from 'react';
import logo from './logo.svg';
import './App.css';
import response from './data';

function App() {
  console.log('users: ',response.data.users);
  console.log('images: ',response.data.images);
  console.log('images: ',response.data.coordinates);
  console.log('images: ',response.data.price);
  return (
    <div className="App">
    {
      response.data.users.map(user=><><h1 key={user.id}>{user.name}</h1></>)
    }    
    {
      response.data.images.map(img=><><h1>{img}</h1></>)
    }    
    </div>
  );
}

export default App;
    

对于其余属性,根据其数据类型分别渲染,如下所示

      ...
   <p>{response.data.coordinates.x } {response.data.coordinates.y }</p>     
   <p><strong>{response.data.price}</strong></p>
...
    

结论

JSON 中的根节点可让您更好地理解响应对象。如果 JSON 响应包含相似的数据类型,您可以将它们合并为一个并一起迭代所有响应,但这在很大程度上取决于数据库的设置方式。通用方法是通过根节点单独访问它们,并仅迭代那些可以迭代的属性(例如数组和字符串),如本指南中所示。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据