首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数组模型对象转换为JSON - Swift 5

将数组模型对象转换为JSON - Swift 5
EN

Stack Overflow用户
提问于 2021-08-12 20:09:18
回答 1查看 50关注 0票数 0

我创建了一个函数来将数组转换为AWSJSON,我想将它用于我的模型,因为我必须将其转换为JSON,但它不起作用。

下面是我得到的错误:

代码语言:javascript
运行
复制
Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

行内guard let data = try? JSONSerialization... below in the function

下面是该数组包含的内容

代码语言:javascript
运行
复制
let chainsWithBalance = await tokenBalancesClassAViewModel.getChainsOnlyWithWalletBalance(wallet: walletAddress)

现在..。当我打印上面的变量时,我得到:

代码语言:javascript
运行
复制
[appName.AllChainsItemsClassAModel(name: Optional("eth-mainnet"), chain_id: Optional("1"), db_schema_name: Optional("chain_eth_mainnet"), label: Optional("Ethereum Mainnet"), logo_url: Optional("https://www.covalenthq.com/static/images/icons/display-icons/ethereum-eth-logo.png"), is_testnet: Optional(false)), appName.AllChainsItemsClassAModel(name: Optional("matic-mainnet"), chain_id: Optional("137"), db_schema_name: Optional("chain_matic_mainnet"), label: Optional("Matic Mainnet"), logo_url: Optional("https://www.covalenthq.com/static/images/icons/display-icons/polygon-matic-logo.png"), is_testnet: Optional(false)), appName.AllChainsItemsClassAModel(name: Optional("bsc-mainnet"), chain_id: Optional("56"), db_schema_name: Optional("chain_bsc"), label: Optional("Binance Smart Chain"), logo_url: Optional("https://www.covalenthq.com/static/images/icons/display-icons/binance-coin-bnb-logo.png"), is_testnet: Optional(false))
]

会不会是我不得不遍历它,然后重新分配给一组新的数组来解开它?

下面是我用来将其转换为JSON的函数

代码语言:javascript
运行
复制
func convertChainsIntoJSON(chains: [AllChainsItemsClassAModel]) -> String? {
    guard let data = try? JSONSerialization.data(withJSONObject: chains, options: []) else {
        return nil
    }
    return String(data: data, encoding: String.Encoding.utf8)
}

下面是我使用的模型:

代码语言:javascript
运行
复制
struct AllChainsItemsClassAModel: Codable, Hashable {
    let name, chain_id, db_schema_name, label, logo_url: String?
    let is_testnet: Bool?
}

我被它弄糊涂了,到底怎么回事?该函数可以很好地转换["a", "b"]类型的数组

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 20:27:10

您的自定义类型符合Codable协议,因此请改用该协议

代码语言:javascript
运行
复制
func convertChainsIntoJSON(chains: [AllChainsItemsClassAModel]) -> String? {
    guard let data = try? JSONEncoder().encode(chains) else { return nil }
    return String(data: data, encoding: String.Encoding.utf8)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68763603

复制
相关文章

相似问题

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