如何编码解码包含字典的结构

问题描述 投票:-2回答:1

我想制作一个可编码的结构,以便可以将内容写入文件中

   struct LocationDetails: Codable {
    var locationId: String? = nil
    var providerId: String? = nil
    var locationDict = [String:Any]()
    var providerDict = [String:Any]()
   }

给出错误:类型“ LocationDetails”与协议“可解码”不符。

而不是字典,如果我使用Array并使用PropertyListEncoder和PropertyListDecoder对结构进行编码/解码,则可以正常工作。但甚至不允许我在可编码结构中定义字典如何用Dictionary Codable制作结构?

json swift codable
1个回答
0
投票

您可以按如下所示使用泛型来定义结构,以删除Any类型并将字典value类型限制为符合Codable的那些类型。

BTW:如果仅保存(不加载),则应使用Encodable,而不是Codable

struct LocationDetails<Location: Codable, Provider: Codable>: Codable {
 var locationId: String? = nil
 var providerId: String? = nil
 var locationDict = [String:Location]()
 var providerDict = [String:Provider]()
}
© www.soinside.com 2019 - 2024. All rights reserved.