在调试时,能够将包含任意对象的字典或数组转储为 JSON 字符串非常有用。
但默认情况下,JSONSerialization 只知道如何编码字符串、数字、布尔值、列表和字典。
这个小项目提供了一些回退逻辑,允许你对任何列表或数组调用 jsonDump()
,并返回一些大致合理的 JSON。
它通过在转储之前修改集合的副本,并将任何非 JSON 对象替换为替代项来实现这一点。在某些情况下,替换项是基本类型,或是由基本类型组成的字典。
如果想为某个类型提供自己的替换,你可以声明该类型符合某个协议。
对于没有任何其他选项的类型,代码会回退到字符串插值。
## 用法
let dict: [String:Any] = [
"date" : Date(timeIntervalSince1970: 0),
"double": 123.45,
"integer": 123
]
print(dict.jsonDump())
let list = [ 123.45, 1, 42, "foo", "bar" ]
print(list.jsonDump())