Swift-->Json解析(原生NSJSONSerialization)
什么是Json? 请百度… 在Swift中,使用NSJSONSerialization对象,进行解析. 1:将对象(字典/数组)转换成Json String
//1:定义一个字典
let bean2 = ["str1": "string","str2": 2,"str3": 2.2,"str4": ["ss1": "sss","ss2": 2,"ss3": 2.2]]
//2:将字典转换成NSData类型
//let data = try? NSJSONSerialization.dataWithJSONObject(bean2,options: .PrettyPrinted)//这种方法输出的Json字符创,会自动添加空格,和换行.输出的格式会很漂亮
let data = try? NSJSONSerialization.dataWithJSONObject(bean2,options: [])//输出一个紧凑的Json字符串,没有换行,没有空格.
//3:将NSData转换成String
//let nsString = NSString(data: data!,encoding: NSUTF8StringEncoding)//这是OC中的NSString类型
let string = String(data: data!,encoding: NSUTF8StringEncoding)//一般使用此方法,这是Swift封装过的String类型,性能比NSString好
//输出结果
//{"str2":2,"str3":2.2,"str4":{"ss1":"sss","ss2":2,"ss3":2.2},"str1":"string"}//无格式的输出
//有格式的输出
{
"str2" : 2,"str3" : 2.2,"str4" : {
"ss1" : "sss","ss2" : 2,"ss3" : 2.2
},"str1" : "string"
}
2:将Json转换成对象(字典/数组) //1:定义Json字符串
let string = "{"str2":2,"str3":2.2,"str4":{"ss1":"sss","ss2":2,"ss3":2.2},"str1":"string"}"
//2:将String转换成NSData
let nsData = string.dataUsingEncoding(NSUTF8StringEncoding)
//let nsData = nsString?.dataUsingEncoding(NSUTF8StringEncoding)//NSString的转换方式一样
//3:将NSData转换成对象(字典/数组)
let object = try! NSJSONSerialization.JSONObjectWithData(nsData!,options: .MutableContainers)//options参数似乎不影响输出结果.
//let object = try! NSJSONSerialization.JSONObjectWithData(nsData!,options: .MutableContainers) as! NSDictionary//如果是Json对象
//let object = try! NSJSONSerialization.JSONObjectWithData(nsData!,options: .MutableContainers) as! NSArray//如果是Json数组
//使用object,不同的对象,使用方法不一样
print("4:(object)")
print("5:(object["str4"]!)")
print("5:(object["str4"]!!["ss3"])")
3:String和NSString的互转: let nsString:NSString = NSString(string: "This is a string")
let string:String = String(nsString)
推荐阅读: 源码: https://github.com/angcyo/JsonDemo 至此: 文章就结束了,如有疑问: QQ群 Android:274306954 Swift:399799363 欢迎您的加入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |