import Foundation
enum E: Codable {
case a(Int???)
}
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let value: [E] = [
.a(.none),
.a(.some(.none)),
.a(.some(.some(.none))),
.a(.some(.some(.some(1))))
]
let json = try encoder.encode(value)
print(String(data: json, encoding: .utf8)!)
[
{
"a" : {
}
},
{
"a" : {
"_0" : null
}
},
{
"a" : {
"_0" : null
}
},
{
"a" : {
"_0" : 1
}
}
]
import Foundation
enum E: Codable {
case a(Int???)
}
let decoder = JSONDecoder()
let json = """
[
{
"a" : {
}
},
{
"a" : {
"_0" : null
}
},
{
"a" : {
"_0" : null
}
},
{
"a" : {
"_0" : 1
}
}
]
""".data(using: .utf8)!
let value = try decoder.decode([E].self, from: json)
dump(value)
▿ 4 elements
▿ main.E.a
- a: nil
▿ main.E.a
- a: nil
▿ main.E.a
- a: nil
▿ main.E.a
▿ a: Optional(Optional(Optional(1)))
▿ some: Optional(Optional(1))
▿ some: Optional(1)
- some: 1