Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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
Json 从对象获取角度值_Json_Angular - Fatal编程技术网

Json 从对象获取角度值

Json 从对象获取角度值,json,angular,Json,Angular,我想从下面的JSON(resReturn.result.gamingdata.original.success)中提取值 只是想知道为什么我只有在进行多次stringify和parse之后才能获得值 有人能告诉我如何简化我的代码吗 JSON: } 我的代码: let resReturnJSON = JSON.stringify(this.UploadstatusGamingDataExcel.resReturn); let resultobj = JSON

我想从下面的JSON(resReturn.result.gamingdata.original.success)中提取值

只是想知道为什么我只有在进行多次stringify和parse之后才能获得值

有人能告诉我如何简化我的代码吗

JSON:

}

我的代码:

          let resReturnJSON = JSON.stringify(this.UploadstatusGamingDataExcel.resReturn);
          let resultobj = JSON.parse(resReturnJSON || '{}').result;
          let resultJSON = JSON.stringify(resultobj);
          let gamingdataobj = JSON.parse(resultJSON || '{}').gamingdata;
          let gamingdataJSON = JSON.stringify(gamingdataobj);
          let originalObj = JSON.parse(gamingdataJSON || '{}').original;
          let originalJSON = JSON.stringify(originalObj);
          let successObj = JSON.parse(originalJSON || '{}').success;
          console.log(successObj);
检查每个属性,直到您点击
success
属性并返回(如果找到)或返回空字符串

const数据={
“状态”:“成功”,
“信息”:“100”,
“重新申报”:{
“结果”:{
“游戏数据”:{
“标题”:{},
“原件”:{
“成功”:“游戏数据Excel-上传成功”
},
“异常”:空
}
}
}
};
const success=(data.resReturn)&&
data.resReturn.result&&
data.resReturn.result.gamingdata&&
data.resReturn.result.gamingdata.original.success)?
data.resReturn.result.gamingdata.original.success:“”;

console.log(成功)如果您想要一个包含数组和对象的json通用函数,可以使用

const data = {
      "status": "Success",
      "message": "100",
      "resReturn": {
        "result": {
          "gamingdata": {
            "headers": {},
            "original": {
              "success": "Gaming Data Excel - upload success"
            },
            "exception": null
          }
        }
      }
    };

    const get = (p, o) =>
      p.reduce((xs, x) =>
        (xs && xs[x]) ? xs[x] : null, o)


    console.log(get(['resReturn', 'result', 'gamingdata', 'original', 'success'], data));
我有一个更简单的解决方案:

    let obj: any;
    try {
        if (data.resReturn.result.gamingdata.original.success) {
            obj = data.resReturn.result.gamingdata.original.success
        }      
    } catch(e) {
        obj = null
    }
    console.log(obj);
对于其他不同的方式,您也可以参考
const data = {
      "status": "Success",
      "message": "100",
      "resReturn": {
        "result": {
          "gamingdata": {
            "headers": {},
            "original": {
              "success": "Gaming Data Excel - upload success"
            },
            "exception": null
          }
        }
      }
    };

    const get = (p, o) =>
      p.reduce((xs, x) =>
        (xs && xs[x]) ? xs[x] : null, o)


    console.log(get(['resReturn', 'result', 'gamingdata', 'original', 'success'], data));
    let obj: any;
    try {
        if (data.resReturn.result.gamingdata.original.success) {
            obj = data.resReturn.result.gamingdata.original.success
        }      
    } catch(e) {
        obj = null
    }
    console.log(obj);