首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象格式不正确

对象格式不正确
EN

Stack Overflow用户
提问于 2022-05-19 14:11:05
回答 1查看 100关注 0票数 0

我有一些代码可以从API中获取数据并将其写入文件,API返回包含一些我不想要的信息的tokenIdMetadata,因此我将其设置为一个新的JSON对象tokenMetadata,并将其保存到一个文件中,如下所示。

代码语言:javascript
复制
const tokenIdMetadata = await Moralis.Web3API.token.getTokenIdMetadata(options);
const tokenMetadata = {};
tokenMetadata.token_id = tokenIdMetadata.token_id;
tokenMetadata.metadata = tokenIdMetadata.metadata;
fs.writeFileSync(folderName.concat('/', collectionSlug, '_', tokenID, '.json'), JSON.stringify(tokenMetadata, null, 4));

问题是,代码在JSON文件中返回一个没有正确格式化的字符串

代码语言:javascript
复制
 "token_id": "4",
 "metadata": "{\"name\":\"Arcade Land Mega #4\",\"image\":\"ipfs://QmaJyxmwWkH17P7cpzRDFqcQwh7HYZ53VS9pJN3rtWKVPh\",\"description\":\"Arcade Lands are digital properties in an interoperable metaverse that serves as your web3 home for all your NFTs. Land owners will get additional benefits within the Arcadeverse.\",\"attributes\":[{\"trait_type\":\"Size\",\"value\":\"Mega\"},{\"trait_type\":\"Area\",\"value\":\"Frozen\"},{\"trait_type\":\"Underground\",\"value\":\"Weird Rocks\"}]}"

这就是它的格式化方式。

代码语言:javascript
复制
"token_id" : "4",
"metadata" : {
  name: 'Arcade Land Mega #4',
  image: 'ipfs://QmXYYbVEFqVPRELzPN3fgCw9v3wr2iQqixbVaGS1JTH6mS',
  description: 'Arcade Lands are digital properties in an interoperable metaverse that serves as your web3 home for all your NFTs. Land owners will get additional benefits within the Arcadeverse.',
  attributes: [
    { trait_type: 'Size', value: 'Mega' },
    { trait_type: 'Area', value: 'Frozen' },
    { trait_type: 'Underground', value: 'Weird Rocks' }
  ]
}

我在想我该怎么解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 14:23:28

我在文档https://docs.moralis.io/moralis-dapp/web3-api/token#gettokenidmetadata中检查了这个API调用的示例结果。看起来,这是因为无法解码传入的JSON。我认为用tokenIdMetadata.metadata代替JSON.parse(tokenIdMetadata.metadata)应该能解决这个问题。

最后的代码应该如下所示:

代码语言:javascript
复制
const tokenIdMetadata = await Moralis.Web3API.token.getTokenIdMetadata(options);
const tokenMetadata = {};
tokenMetadata.token_id = tokenIdMetadata.token_id;
tokenMetadata.metadata = JSON.parse(tokenIdMetadata.metadata);
fs.writeFileSync(folderName.concat('/', collectionSlug, '_', tokenID, '.json'), JSON.stringify(tokenMetadata, null, 4));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72306139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档