JSON解析

1 简介

使用NSJSONSerialization,我们可以将JSON转换为AnyObject对象,或将AnyObject对象转换为JSON对象。

将一个AnyObject对象转换JSON对象必须具备以下条件。

  1. 该对象的是NSArray或NSDictionary。
  2. 内部数据只能是NSString, NSNumber, NSArray, NSDictionary, 或NSNull。
  3. 所有字典的key是NSString。
  4. Number类型数据不能是NaN或无穷。

你还可以通过方法isValidJSONObject:判断一个对象能否转换成JSON对象。

JSON对象其实质是一个NSDAta对象。

2 AnyObject转JSON

var dict = [String: String]()
dict["name"] = "阳君"
dict["qq"] = "937447974"
do {
    if NSJSONSerialization.isValidJSONObject(dict) { // 能否转换为JSON Data
        // 转换为JSON Data
        let data  = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted)
        // 转换为json串
        self.jsonString = String(data: data, encoding: NSUTF8StringEncoding)
        print("json生成:\(self.jsonString)")
    }
} catch {
    print("转换出错:\(error)")
}

3 JSON转AnyObject

// json转data
if let data = self.jsonString?.dataUsingEncoding(NSUTF8StringEncoding) {
    do {
        // dataJSON Object
        let jsonObject = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
        // JSON Object转实际对象
        if let dict = jsonObject as? Dictionary<String, AnyObject> {
            print("json解析:\(dict)")
        }
    } catch {
        print("解析xml出错:\(error)")
    }
}

 


其他

源代码

Swift

参考资料

NSJSONSerialization Class Reference

文档修改记录

时间描述
2015-12-07博文完成

版权所有

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974/Blog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值