我创建了一个函数来将数组转换为AWSJSON
,我想将它用于我的模型,因为我必须将其转换为JSON,但它不起作用。
下面是我得到的错误:
Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
行内guard let data = try? JSONSerialization... below in the function
下面是该数组包含的内容
let chainsWithBalance = await tokenBalancesClassAViewModel.getChainsOnlyWithWalletBalance(wallet: walletAddress)
现在..。当我打印上面的变量时,我得到:
[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的函数
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)
}
下面是我使用的模型:
struct AllChainsItemsClassAModel: Codable, Hashable {
let name, chain_id, db_schema_name, label, logo_url: String?
let is_testnet: Bool?
}
我被它弄糊涂了,到底怎么回事?该函数可以很好地转换["a", "b"]
类型的数组
谢谢
发布于 2021-08-12 12:27:10
您的自定义类型符合Codable
协议,因此请改用该协议
func convertChainsIntoJSON(chains: [AllChainsItemsClassAModel]) -> String? {
guard let data = try? JSONEncoder().encode(chains) else { return nil }
return String(data: data, encoding: String.Encoding.utf8)
}
https://stackoverflow.com/questions/68763603
复制相似问题