【发布时间】:2017-10-16 10:48:58
【问题描述】:
根据 JSON 标准RFC 7159,这是有效的 json:
22
如何使用 swift4 的可解码器将其解码为 Int?这不起作用
let twentyTwo = try? JSONDecoder().decode(Int.self, from: "22".data(using: .utf8)!)
【问题讨论】:
-
这不是一个有效的 json,一个 json 是由键值对组成的,它只是一个值。
-
这是有效的 JSON 片段,不是有效的 JSON。
-
如果您将
try包装在Do..Catch中并处理错误,它会告诉您您的json 格式不正确。这不是一个有效的 JSON,你为什么要坚持这个? -
JSONSerialization 有一个 allowFragments 用于此目的的读取选项,但新的 JSONDecoder 没有这样的选项。
-
@Desdenova 我并不坚持,它根据 RFC 7159 标准是有效的,该标准肯定被广泛使用。如果你说的是真的,我想这意味着 swift 并没有使用它。