OS数据处理及版本特性-json解析

首先需要一个json

{
    "menu":
    {
        "id":"file",
        "value":"File",
        "menuitem":
        [
            {
                "value":"New",
                "onclick":"CreateNewDoc()"
            },
            {
                "value":"Open",
                "onclick":"OpenDoc()"
            },
            {
                "value":"Close",
                "onclick":"CloseDoc()"
            }
        ]
    }
}

解析json

//从项目目录读取json文件
        let path:String = Bundle.main.path(forResource: "menu", ofType: "json")!
        // 然后读取指定位置的文件 并转换成二进制数据
        if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path)) {
            do{
                //将二进制转为字典对象
                if let jsonObj:NSDictionary = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions()) as? NSDictionary {
                    //根据键名获得字典中的键值 并将键值转换成另一个字典对象
                    if let menuDic:NSDictionary = jsonObj["menu"] as? NSDictionary{
                        //根据键名 获得第二个字典对象中的键值 并将键值转换为一个数组对象
                        if let menuItems:NSArray = menuDic["menuitem"] as? NSArray{
                            for item in menuItems{
                                print("itme: \(item)")
                            }
                        }
                    }
                }
            }catch{
                print("Error.")
            }
        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值