我正在尝试编码我的jsonData。一切正常,只有一个例外 - 我收到的是输出Optional(my_json_string)
。但我希望只收到my_json_string
当我将req.httpBody = jsonData
更改为req.httpBody! = jsonData
时,我收到错误。
do {
let jsonData = try encoder.encode(self)
let jsonString = String(data: jsonData, encoding: .utf8)
req.httpBody = jsonData
print ("httpBody is: ", jsonString)
} catch {
//TODO:error handling
}
如何正确执行此操作并从可选中解包我的JSON字符串?
答案 0 :(得分:4)
您的代码没有问题,您编码的JSON不是可选的。您看到的问题是您正在打印String(data:, encoding: )
初始值设定项的返回值,这是一个可用的初始化程序(如果您提供给它的编码错误,则返回nil
),因此{{1在print语句中。
Optional
始终生成有效的UTF-8编码JSONEncoder
,因此您可以通过执行
String