Javascript ReactJS:RestAPI JSON响应:如何解析
作为ReactJS新手,我尝试解析RestfulAPI JSON响应,但无法检索所有元素。在尝试访问text.subjects.code和text.subjects.description时,它返回null。但是,我可以成功访问text.id和text.name 下面给出了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
[
{
"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
。