我试着对
JSONDecoder
我遇到了一个奇怪的行为。特别是,当我使用以下代码时,会抛出一个错误。
let data = "Sample String".data(using: .utf8)!
do {
let decoder = JSONDecoder()
let decoded = try decoder.decode(String.self, from: data)
print(decoded)
} catch {
print(error)
}
dataCorrupted(Swift.DecodingError.Context(codingPath:[],debugDescription:“给定的数据不是有效的JSON。”,underlyingError:可选(错误域=NSCocoaErrorDomain代码=3840“第1行第0列周围的值无效。”UserInfo={NSDebugDescription=第1行、第0列附近的值无效,NSJSONSerializationErrorIndex=0})))
相反,如果我把一个数字作为字符串
Int.self
作为解码类型,正确打印值。
let data = "100".data(using: .utf8)!
do {
let decoder = JSONDecoder()
let decoded = try decoder.decode(Int.self, from: data)
print(decoded)
} catch {
print(error)
}
100
发生这种情况的原因是什么?