我必须发送一个包含JSON对象的URLRequest作为其http-body(需要是Data类型)。
我的JSON看起来像这样:
let json: [String : Any] = [
"to" : toDeviceToken, // String
"notification" : [
"title" : title, // String
"body" : body, // String
"icon" : icon // UIImage
],
"data" : {
// Add optional data here.
}
]
我想将其转换为类型数据,以便将其放入URLRequest。
此
try JSONSerialization.data(withJSONObject: json, options: .prettyPrinted)
由于某种原因总是失败,也许是因为它是嵌套的JSON对象?
此外,JSONSerialization.isValidJSONObject(json)
返回false。
将UIImage对象转换为这样的String对象时
UIImagePNGRepresentation(UIImage.appIcon!)?.base64EncodedString()
,我收到错误提示'Invalid type in JSON write (_SwiftValue)'
我该怎么做?
答案 0 :(得分:1)
您的代码失败,因为它包含无法转换为JSON的数据。
有关支持数据类型的列表,请参阅JSONSerialization
的文档。请注意,UIImage
不是受支持的类型之一。
您需要使用其JPG或PNG表示的base64编码将UIImage
转换为字符串。