Swift - 将 [[String:Any?]] 转换为数据 (Data)

19

我有一个[[String:Any]]对象,其中包含如下内容:

var result : [[String : Any]] = [[String : Any]]()

我需要将其转换为Data

我只是使用:JSONEncoder().encode(result)进行转换。

但是我遇到了这个错误:

无法推断出通用参数'T'

是否存在一种简单的方法将[[String:Any?]]对象转换为Data


JSONEncoder 不支持 Any 类型。请使用 JSONSerialization - vadian
1
让我们添加一个 catch 来查看是否出现了问题:let jsonData = try? JSONSerialization.data(withJSONObject:result options:[]) - Larme
2个回答

43

JSONEncoder 只能编码类型符合 Encodable 协议的对象。如果您想将 Any 编码成 JSON,您需要使用 JSONSerialization 来实现。

let jsonData = try? JSONSerialization.data(withJSONObject:result)

0

你也可以使用 struct 并使用它来实现。

let data = try? JSONEncoder().encode(struct_Object))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接