尝试从JSON读取时“未定义”

时间:2017-12-23 04:57:34

标签: javascript json

我正在使用API​​在比特币地址中取得平衡。

我的代码是:

async function getWalletBalance(address) {
    try {
        const response = await got(`blockchain.info/balance?active=${address}`)
        return response.body.address.final_balance
    } catch(err) {
        return err
    }
}

返回的JSON是:

{
  "3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r": {
    "final_balance": 15392048444281,
    "n_tx": 3938,
    "total_received": 138450271881712
  }
}

但是当我尝试阅读最终的平衡时,它给了我未定义的。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

response.body.address.final_balance正在寻找文字键address,而不是在您的示例中查找键3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r

使用response.body[address].final_balance代替应解决您的问题。

下面的代码段略有修改(并且没有调用来获得真实的回复),但是应该完成这项工作。

function getWalletBalance(address) {
    try {
        const body = {
          "3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r": {
            "final_balance": 15392048444281,
            "n_tx": 3938,
            "total_received": 138450271881712
          }
        };
        console.log('using body[address]:', body[address].final_balance);
    } catch(err) {
        return err
    }
}

getWalletBalance("3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r");