iOS Swift讀取本地json文件報(bào)錯(cuò)的解決方法
前言
最近閑來(lái)無(wú)聊,本地了一個(gè)json讀取,但沒(méi)想到在用Swift測(cè)試數(shù)據(jù)發(fā)現(xiàn)加載本地json文件一直報(bào)以下錯(cuò)誤:
Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
原來(lái)是本地json文件前面有一段注釋/* chrome-extension://pkgccpejnmalmdinmhkkfafefagiiiad/template/fehelper_jsonformat.html */
然后就讀取不到了```坑啊,去掉注釋就可以正常讀取了
let path = Bundle.main.path(forResource: "countryData", ofType: "json") let url = URL(fileURLWithPath: path!) // 帶throws的方法需要拋異常 do { /* * try 和 try! 的區(qū)別 * try 發(fā)生異常會(huì)跳到catch代碼中 * try! 發(fā)生異常程序會(huì)直接crash */ let data = try Data(contentsOf: url) let jsonData:Any = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) let jsonArr = jsonData as! NSArray for dict in jsonArr { print(dict) } } catch let error as Error! { print("讀取本地?cái)?shù)據(jù)出現(xiàn)錯(cuò)誤!",error) }
擴(kuò)展閱讀--蘋果官網(wǎng) Error Handling
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Objective-C中的block與Swift中的尾隨閉包使用教程
Block是OC中的閉包,他和swift中的閉包有什么區(qū)別呢?下面這篇文章就來(lái)給大家介紹關(guān)于Objective-C中的block與Swift中的尾隨閉包使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12SwiftUI 登錄界面布局實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了SwiftUI 登錄界面布局實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Swift編程中用以管理內(nèi)存的自動(dòng)引用計(jì)數(shù)詳解
這篇文章主要介紹了Swift編程中用以管理內(nèi)存的自動(dòng)引用計(jì)數(shù)詳解,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11詳解Swift的switch...case語(yǔ)句中break關(guān)鍵字的用法
這篇文章主要介紹了Swift的switch...case語(yǔ)句中break關(guān)鍵字的用法,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-04-04Swift網(wǎng)絡(luò)請(qǐng)求庫(kù)Alamofire使用詳解
這篇文章主要為大家詳細(xì)介紹了Swift網(wǎng)絡(luò)請(qǐng)求庫(kù)Alamofire的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08