Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON无法准备null属性_Javascript_Arrays_Json_Api - Fatal编程技术网

Javascript JSON无法准备null属性

Javascript JSON无法准备null属性,javascript,arrays,json,api,Javascript,Arrays,Json,Api,我正在调用返回JSON数组的API,我在这个数组上迭代,将每个值映射到新对象,然后将其推送到新数组 问题是当API中的值为nulli get时 Cannot read property 'name' of null 但在我的代码中,我正在处理null,但仍然得到这个错误 let comArr = []; JSONData.issues.forEach(element => { comArr.push({ Resolution: (element.

我正在调用返回JSON数组的API,我在这个数组上迭代,将每个值映射到新对象,然后将其推送到新数组

问题是当API中的值为
null
i get时

Cannot read property 'name' of null
但在我的代码中,我正在处理
null
,但仍然得到这个错误

let comArr = [];
    JSONData.issues.forEach(element => {
      comArr.push({   
        Resolution: (element.fields.resolution.name === null) ? "some default value" : element.fields.resolution.name,

      });
    });

在相同的情况下,
element.fields.resolution
似乎是
null
。在您的声明中添加第二个if检查,如:

if (element.fields.resolution === null){
 comArr.push({  Resolution: "some default value" });
}
else{
 comArr.push(Resolution: (element.fields.resolution.name === null) ? "some default value" : element.fields.resolution.name);
}

问题是在某些情况下,您的
分辨率
对象是
null
,因此您应该先检查对象是否存在。一个更干净的解决方案是使用
map
,因为您总是在推一个对象,而不是使用
forEach

const JSONData={
问题:[
{
字段:{}
},
{
字段:{
决议:{
姓名:“富”
}
}
},
{
字段:{}
},
{
字段:{
决议:{
名称:“酒吧”
}
}
}
]
}
const output=JSONData.issues.map({fields:{resolution}})=>({
Resolution:Resolution&&Resolution.name?Resolution.name:“某些默认值”
}))

console.log(output)
从错误和您提供的代码来看,
解析
似乎是
空的
而不是
名称
本身。很抱歉,当我记录
元素.fields.resolution.name
是空的尝试
(element.fields.resolution==null | | | element.fields.resolution.name==null)
您应该先检查每个部分是否存在故障,然后是element.fields,然后是element.fields.resolution,最后是element.fields.relolution.name,同样在JavaScript中null没有任何意义,检查是否存在未定义的问题。嘿,这就是问题,我将接受答案,你能告诉我如何更优雅地处理这些异常吗,因为我有30多个值。嘿,谢谢,但是,看起来不像以前那样像错误一样工作:(@Exc我添加了一个可运行的代码段。问题是我把三元语句放错了方向,我的错。