優(yōu)雅,安全地解析JSON是很難的,但Freddy可以幫助你。Freddy是在Swift 解析 JSON一個(gè)可重用的框架。它有三個(gè)主要的好處。
首先,F(xiàn)reddy提供一種安全的解決方案,以在 Swift 解析JSON。這意味著,編譯器可以幫助您發(fā)送和接收J(rèn)SON時(shí)防止運(yùn)行時(shí)崩潰。
其次,F(xiàn)reddy提供了一個(gè)地道的解決方案來使用JSON解析Swift的泛型,枚舉和功能特性的優(yōu)勢。所有的這些,你無需記住而外的文檔就可以輕松的使用。如果你能輕松的使用Swift語言(使用擴(kuò)展協(xié)議,初始化等),那么你不需要了解Freddy是如何組織的,你也能輕松地使用Freddy。
第三,F(xiàn)reddy為那些在解析JSON時(shí)發(fā)生的異常返回錯(cuò)誤信息。如果有一個(gè)key是不存在的JSON對象,你會得到一個(gè)信息的錯(cuò)誤。如果索引出界,你會得到一個(gè)錯(cuò)誤信息。如果你嘗試將JSON值轉(zhuǎn)換為錯(cuò)誤的類型,你也會得到一個(gè)錯(cuò)誤消息。
因此,F(xiàn)reddy VS JSON,誰贏了?我們認(rèn)為是Freddy。
//JSON 數(shù)據(jù) { "success": true, "people": [ { "name": "Matt Mathias", "age": 32, "spouse": true }, { "name": "Sergeant Pepper", "age": 25, "spouse": false } ], "jobs": [ "teacher", "judge" ], "states": { "Georgia": [ 30301, 30302, 30303 ], "Wisconsin": [ 53000, 53001 ] } }
//解析代碼 let data = getSomeData() do { let json = try JSON(data: data) let success = try json.bool("success") // do something with `success` } catch { // do something with the error }