Javascript 如何在ReactJS中访问json密钥?

Javascript 如何在ReactJS中访问json密钥?,javascript,json,reactjs,Javascript,Json,Reactjs,我有一个渲染问题,在componentDidMount中,在使用setstate分配json之后,我使用axios进行get调用 问题是: 当我试图在render中调用json的键时,它们是未定义的。。因为组件DIDMOUNT在渲染后工作 例如: export default class ShowDetails extends Component { constructor(props) { super(props); this.accountService=new Account

我有一个渲染问题,在componentDidMount中,在使用setstate分配json之后,我使用axios进行get调用

问题是:

当我试图在render中调用json的键时,它们是未定义的。。因为组件DIDMOUNT在渲染后工作

例如:

    export default class ShowDetails extends Component { 
constructor(props) { 
super(props); 
this.accountService=new AccountService(); 
this.state = { 
account:[] 
} 

} 

componentDidMount() { 
this.accountService.getAccount().then(r => this.setState({ account: r.data })); } 

render() { return ( {this.state.account.all.moneyavailable.Formatted} //this is undefined
我已经尝试过在axios呼叫中移动到其他地方,但没有成功

json:

  {
"account": [
    {
        "saldoDisponibileFormatted": "1.664,57",
        "saldoContabileFormatted": "1.341,10",
        "value": "EUR",
        "debit": false,
        "productAlias": null,
        "bank": "bank",
        "iban": "IT31M0326801017052670700860",
        "moviments": [
            {
                "causShort": "Commissioni",
                "import": "1,00",
                "sign": "D"
            },

        ],
        "dateUpdate1": "n/d",
        "dateUpdate2": "4/12/2018"
    },

],
"all": {
    "moneyavailable": {
        "Formatted": "1950,82"
    },
    "moneyavailable2": {
        "Formatted": "31627,35"
    },
    "dateUpdate": "4/12/2018"
}

}

要访问对象的属性,可以执行以下操作:

const数据={
“账户”:[
{
“Saldodisponibileformated”:“1.664,57”,
“saldocontabileformated”:“1.341,10”,
“价值”:“欧元”,
“借方”:错误,
“productAlias”:空,
“银行”:“银行”,
“iban”:“IT31M0326801017052670700860”,
“电影”:[
{
“causShort”:“Commissioni”,
“进口”:“1,00”,
“符号”:“D”
},
],
“日期更新1”:“不适用”,
“日期更新2”:“2018年4月12日”
},
],
“全部”:{
“可用资金”:{
“格式化”:“1950,82”
},
“可用资金2”:{
“格式化”:“31627,35”
},
“日期更新”:“2018年4月12日”
}
}
console.log(data.all)//用于all键
console.log(data.account)//用于帐户密钥

console.log(data.all.moneyavailable.Formatted)
假设您的json被分配给您所在州名为
jsonData
的属性,您可以像这样访问该属性:

this.state.jsonData.all.moneyavailable.Formatted

检查下面的代码段:

var jsonData={
“账户”:[
{
“Saldodisponibileformated”:“1.664,57”,
“saldocontabileformated”:“1.341,10”,
“价值”:“欧元”,
“借方”:错误,
“productAlias”:空,
“银行”:“银行”,
“iban”:“IT31M0326801017052670700860”,
“电影”:[
{
“causShort”:“Commissioni”,
“进口”:“1,00”,
“符号”:“D”
},
],
“日期更新1”:“不适用”,
“日期更新2”:“2018年4月12日”
},
],
“全部”:{
“可用资金”:{
“格式化”:“1950,82”
},
“可用资金2”:{
“格式化”:“31627,35”
},
“日期更新”:“2018年4月12日”
}
}
log(jsonData.all.moneyavailable.Formatted);

警报(jsonData.all.moneyavailable.Formatted)只需将json存储在一个变量中

var data = { ... json};
console.log(data.all.moneyavailable);

请显示您的代码
“all”:[{“moneyavailable”:{“Formatted”:“1950,82”},“moneyavailable2”:{“Formatted”:“31627,35”},“dateUpdate”:“4/12/2018”}]
假设您的JSON被称为
数据
那么
data.all.moneyavailable.Formatted
(请注意大写字母F)正如我上面要求的那样,你能在你的问题中用状态发布组件吗?请用状态发布组件,这样我就可以检查问题是否与异步相关。上面的json很好,我也这么称呼它。