[ Swift 2.0]撸了一个 JSON 类型,欢迎拍砖

2015-09-12 21:49:28 +08:00
 dorentus
因为有了 indirect enum , Swift 终于可以直接表示这种递归的数据结构了

支持 string 、 int 、 float 、 boolean 、 nil 、 array 、 dictionary literal ,然后加了个 initializer 来支持从 NSJSONSerialization 的 JSONObjectWithData (_, options:) 返回的 AnyObject 转成我的 JSON 数据结构

代码如下:

https://gist.github.com/dorentus/1e2132edfb174028bf11
2365 次点击
所在节点    iDev
2 条回复
wezzard
2015-09-13 20:30:47 +08:00
私以爲

public subscript (index: Int ) -> JSON



public subscript (key: Swift.String ) -> JSON

返回 optional value 會比較好,實際過程中可能存在動態判斷,人爲 handle 一下比報 fatal error 要友好。
wezzard
2015-09-13 20:47:43 +08:00
另外,爲甚麼要寫成

for (k, v ) in zip (dictValue.keys, try dictValue.values.map { try JSON ($0 ) }) {
dict[k] = v
}


而不是

for (key, value ) in dictValue {
dict[key] = try JSON (value )
}



zip 要 enumerate dictValue 的 keys 一遍,再 enumerate dictValue 的 values 一遍,然後生成的 sequence 再被你 enumerate 一遍,多 enumerate 了兩邊啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/220251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX