Javascript 如何在ReactJS中访问json密钥?
我有一个渲染问题,在componentDidMount中,在使用setstate分配json之后,我使用axios进行get调用 问题是: 当我试图在render中调用json的键时,它们是未定义的。。因为组件DIDMOUNT在渲染后工作 例如: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
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很好,我也这么称呼它。