专栏首页iOS开发随笔iOS Swift 读取本地json文件

iOS Swift 读取本地json文件

在用Swift测试数据发现加载本地json文件一直报以下错误:

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.}

原来是本地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! 的区别
                 * try 发生异常会跳到catch代码中
                 * try! 发生异常程序会直接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("读取本地数据出现错误!",error)
        }

扩展阅读--苹果官网 Error Handling

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mac 下安装Python3.5出现“python3-3.5.0 already installed, it's just not linked”错误

    傅_hc
  • React Native 升级和降级

    傅_hc
  • iOS Swift基础语法(一)

    傅_hc
  • 关于java连接mysql数据库的几个问题的解决方法。

    今天就为了连接下数据库获取信息来提供给ListView使用,搞了足足5小时。 出现的问题有:       第一个是,DriverManager.getConne...

    林冠宏-指尖下的幽灵
  • 华为oj之求解立方根

    立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x. 求给定的x经过n次迭代后立方根的值。

    Enjoy233
  • 服务器命名评分

    这个问题太简单,以致于提起来,很多人忽略掉了。今天给大家秀一下这几年见到的命名情况,供大家赏玩。 这里面没有最好,但有最差。我们按命名满分 5分来打...

    wubx
  • Day14IO编程

    读文件 Python引入了with语句来自动帮我们调用close()方法: with open('/path/to/file', 'r') as f: ...

    林清猫耳
  • Python String 方法详解二:字符串条件判断

    str.isalnum() --> Bool (True or False)    判断字符串String是否由字符串或数字组成,并且至少有一个字符(不为空)简...

    软测小生
  • 手把手带你使用c++写《超级玛丽》小游戏

    吃鸡’模式火起来之后,市面上涌现出了大量的大逃杀游戏,载具版、僵尸版,还有魔幻、武侠、三国等各种题材。最近一个国外开发者另辟蹊径,把经典游戏《超级玛丽》改成了大...

    诸葛青云
  • 775. Global and Local Inversions

    思路: local inversion 很容易求解,遍历一遍O(n)结束,global inversion实际上就是求逆序对的个数。所以此题我们可以分别求解...

    用户1147447

扫码关注云+社区

领取腾讯云代金券