Json 从对象获取角度值
我想从下面的JSON(resReturn.result.gamingdata.original.success)中提取值 只是想知道为什么我只有在进行多次stringify和parse之后才能获得值 有人能告诉我如何简化我的代码吗 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
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);