Swift 解析 JSON

本文介绍了如何在Swift中使用NSJSONSerialization库解析JSON数据。文章通过实例展示了从网络请求获取到的JSON数据如何转化为Swift的Foundation对象,并指出转换过程中需要注意的错误类型和解决方案。
摘要由CSDN通过智能技术生成

/**

     *  显示数据

     */

    

    

    /**

     *   一,使用自带的NSJSONSerialization

     苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高。

     

     NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性:

     1,顶层对象必须是NSArray或者NSDictionary

     2,所有的对象必须是NSStringNSNumberNSArrayNSDictionaryNSNull的实例

     3,所有NSDictionarykey必须是NSString类型

     4,数字对象不能是非数值或无穷

     注意:尽量使用NSJSONSerialization.isValidJSONObject先判断能否转换成功

     

    */


    //声明:result是网络请求下来的数据

    func loadData(result:NSDictionary) {

//在进行网络解析时,由于刚正式的用swift写项目,遇到各种问题,各种尝试,终于找到破解方法,下面我将进行网络请求时遇到的问题与大家分享交流下(ps:swift语法特点与OC差异很大,接触swift时也许不太习惯)    

            //下面这行代码这么写 会报错:如下 cannot convert value of type 'AnyObject' to specified type 'NSDictionary'

            //let data:NSDictionary = result1 .objectForKey("data")

            

            //下面这行代码这么写 会报错:如下 fatal error: unexpectedly found nil while unwrapping an Optional value

            //let data = result1.valueForKey("data") as! [NSDictionary:AnyObject]

            

            //下面这行代码这么写 会报错:如下 Could not cast value of type '__NSCFArray' (0x19eba9150) to 'NSDictionary' (0x19eba9380).

            //let yourFirstObj : NSDictionary =  result["productList"] as! NSDictionary

//上面是我遇到的问题,大家一定要注意下

        print(result)

        //首先判断能不能转换

        if (!NSJSONSerialization.isValidJSONObject(result)) {

            print("is not a valid json object")<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值