我想把一个字典数组转换成JSON格式。我的对象类型是[[String: AnyObject]]
,最后得到一个如下的例子:
[
{ "abc": 123, "def": "ggg", "xyz": true },
{ "abc": 456, "def": "hhh", "xyz": false },
{ "abc": 789, "def": "jjj", "xyz": true }
]
这是我正在尝试的,但编译器不喜欢我的声明:
extension Array where Element == Dictionary<String, AnyObject> {
var json: String {
do { return try? NSJSONSerialization.dataWithJSONObject(self, options: []) ?? "[]" }
catch { return "[]" }
}
}
我该怎么做?
4条答案
按热度按时间fgw7neuy1#
实现这一点的一个简单方法是只扩展CollectionType。
使用选择性系结和向下转型,然后序列化为数据,再转换为字串。
输出量:
waxmsbnn2#
雨燕4:
用法:
3npbholx3#
Swift 5,我不得不将其更改为
Any
而不是AnyObject
,构建了Eric和A.G.的解决方案。用法:
dba5bblo4#
我认为您尝试扩展
Array
是不走运的,因为在扩展实体时,相同类型的要求是不可能的。你可以做的就是利用免费函数:
通过这种方式,您可以保持所需的类型安全,但代价是移动函数的位置。