重点: Strategy Date Data NonConformingFloat Container Keyed Container UnKeyed Container Single Value Container Optional encode(_:forKey:) 如果可选类型的值是nil,包含对应的Key, Value 为null。 encodeIfPresent(_:forKey:) 如果可选类型的值是nil,则不包含对应的Key 和 Value。 UserInfo 参考资料: Ultimate Guide to JSON Parsing With Swift 4 Swift 4 Decodable: Beyond The Basics