我希望有人可以提供帮助。
我有一个JSON对象的例子,我通过mongoose保存到我的mongoDB:
{"@context":"https://w3id.org/chainpoint/v2",
"type":"ChainpointSHA256v2",
"targetHash":"5eaad1259897efd03dc8ea30d1a0d717fec7ec23b6b1487ad689353a240d92a6",
"merkleRoot":"6d6fd23027665e754b2af5fe351bd7096e13ad5706402d24c26afe8db88f95c7",
"proof":[{"right":"6a7a3efc12b60355bedcd82d2045f56589bca7090125a100128c70ff79031fc7"}],
"anchors":[{"type":"BTCOpReturn",
"sourceId":"6452eae85d1450b0b1f1104c07d105991a32f0a7c44a449268ceaebf6599566f"}]}
我在Mongoose中设置了我的“锚点”模型,将其保存为对象。
在我的代码中,当我检查类型时,对象确实是一个对象。
当我在代码中执行以下操作时,会成功打印该值(其中mongoose模型为“Anchor”),而“anchor.receipt”是上面代码段中打印的确切内容:
console.log('***Receipt for ID: ' + anchor.receipt);
当我尝试执行以下操作时,问题就出现了。以下两者的结果是“未定义”:
console.log('***targetHash for ID: ' + anchor.receipt.targetHash);
console.log('***MerkleRoot for ID: ' + anchor.receipt.merkleRoot);
我也试图让以下工作,但它给出了一个错误,说“0”没有定义:
console.log('***SourceId for ID: ' + anchor.receipt.anchors[0].sourceId);
所以,正如你所看到的那样:),我在检索嵌套JSON对象中的值时遇到问题。任何帮助都将非常感激。
谢谢!
答案 0 :(得分:0)
耶!解决:
JSON.parse就是答案。希望这可以在将来帮助其他人。
var data3 = JSON.parse(anchor.receipt);
console.log('***SourceId for ID: ' + data3.anchors[0].sourceId);