Javascript ReactJS:RestAPI JSON响应:如何解析

Javascript ReactJS:RestAPI JSON响应:如何解析,javascript,json,reactjs,rest,Javascript,Json,Reactjs,Rest,作为ReactJS新手,我尝试解析RestfulAPI JSON响应,但无法检索所有元素。在尝试访问text.subjects.code和text.subjects.description时,它返回null。但是,我可以成功访问text.id和text.name 下面给出了JSON响应 [ { "id":95822, "name":"Alex", "subjects":[ { "code": "101", "descript

作为ReactJS新手,我尝试解析RestfulAPI JSON响应,但无法检索所有元素。在尝试访问text.subjects.code和text.subjects.description时,它返回null。但是,我可以成功访问text.id和text.name

下面给出了JSON响应

[
  {
    "id":95822,
    "name":"Alex",
    "subjects":[
      {
        "code": "101",
        "description": "Course 101"
      }
    ]
  }
]

请告知。

如果您检查的主题是一个数组,并且您没有从中获得价值,请尝试
text.subjects[0]。code

因为subjects是一个数组,您应该
映射
subject,如下所示:

text.subjects.map((subject) => {
    console.log(subject.code, subject.description);
})
或者直接获取您想要的索引,如下所示:

text.subjects.map((subject) => {
    console.log(subject.code, subject.description);
})

text.subjects[0]。code

您可以通过多种方式进行迭代,但我总是喜欢使用.forEach和.map

如果需要新数组,请使用.map。因为map返回一个新数组

  const dataArray = text.subjects.map(subject => {
      let obj = {};
      obj.code = subject.code;
      obj.description = subject.description;
      return obj;
 });
//dataArray将包含所有对象

还有一种不同的绘制地图的方法

   const dataArray = text.subjects.map(subject => (
       let obj = {};
      obj.code = subject.code;
      obj.description = subject.description;
      return obj;
  );
或者,如果只想迭代数据,则使用.forEach。forEach不返回数组

   let array = [];
   text.subjects.forEach(subject => (
      let obj = {};
      obj.code = subject.code;
      obj.description = subject.description;
      array.push(obj);
  ));

您是否注意到
subjects
是一个数组,您应该通过索引来访问它的属性?现在您知道subjects可能是一个数组。当subjects数组为空且您试图从中获取代码时,避免出现错误的最佳方法是使用map()或lodash get:let code=lodash.get(text.subjects,[0][code]',undefined),然后检查值if(typeof code!=“undefined”){dosomething.}不更改数组时,不要使用
map
。您应该改用
forEach