72得票6回答
使用Codable处理有时为Int类型,有时为String类型的值

我有一个API,有时会将JSON中特定的键值(在此情况下为 id)作为整数返回,而其他时候则会将同一键值作为字符串返回。 我如何使用可编码解析该JSON?struct GeneralProduct: Codable { var price: Double! var id: St...

72得票10回答
Swift 4中带有默认情况的可编码枚举

我定义了一个枚举如下:enum Type: String, Codable { case text = "text" case image = "image" case document = "document" case profile = "profile"...

66得票4回答
如何使用Swift中的Codable将带有可选小数秒的日期字符串转换?

我正在用Swift的Codable替换我的旧JSON解析代码,但遇到了一些问题。我想这不仅仅是一个Codable问题,还涉及到DateFormatter问题。 首先从一个结构体开始 struct JustADate: Codable { var date: Date } 和一个 J...

65得票1回答
为字符串资源格式创建自定义的Swift编码器/解码器

我一直在尝试使用 Codable 并读写 JSON 文件。现在我想编写一个自定义的 Coder,可以读写 iOS .strings 文件。有人能帮我吗?我找到了协议 Encoder 和 Decoder,但我不知道应该实现什么:class StringsEncoder {} extension...

62得票5回答
使用JSONEncoder对符合协议的类型的数组进行编码/解码

我试图找到在Swift 4中使用新的JSONDecoder/Encoder编码/解码符合Swift协议的结构体数组的最佳方法。 我设计了一个小例子来说明这个问题: 首先我们有一个协议Tag和一些符合该协议的类型。protocol Tag: Codable { var type: S...

58得票13回答
如何在可编码类型中使用Any

我目前在我的项目中使用 Codable 类型并遇到了一个问题。 struct Person: Codable { var id: Any } 在上面的代码中,id 可以是 String 或 Int。这就是为什么 id 是 Any 类型的原因。 我知道 Any 不是 Codable。...

58得票4回答
如何在Core Data中使用Swift 4的Codable?

Codable看起来是一个非常令人兴奋的功能。但我想知道如何在Core Data中使用它?具体而言,是否可以直接从/到NSManagedObject进行编码/解码JSON? 我尝试了一个非常简单的示例: 并自己定义了Foo: import CoreData @objc(Foo) p...

48得票3回答
使用Decodable进行JSON解析时,optional和decodeIfPresent有什么区别?

我第一次使用来自Swift 4的Codable协议,我无法理解从Decodable使用decodeIfPresent的用法。 /// Decodes a value of the given type for the given key, if present. /// /// This m...

48得票10回答
如何在 JSON string 中使用多种日期格式来解析 JSONDecoder?(Swift 的问题)

JSONDecoder提供了dateDecodingStrategy属性,允许我们根据DateFormatter对象定义如何解释传入的日期字符串。 然而,我目前正在使用一个API,该API根据属性返回日期字符串(yyyy-MM-dd)和日期时间字符串(yyyy-MM-dd HH:mm:ss)...

45得票4回答
Swift 4 Codable;如何解码具有单个根级键的对象

我正在使用Swift 4的Codable协议处理JSON数据。我的数据格式化为在根级别有一个单独的键,其对象值包含我需要的属性,例如:{ "user": { "id": 1, "username": "jdoe" } } 我有一个User结构体,可以解码user键: ...