• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Swift开发中 JSON对象/JSON字符串/Data的互转 - 人生为代码而活

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Swift开发中 JSON对象/JSON字符串/Data的互转

本文将介绍Swift开发中常用的转换(JSON对象/JSON字符串/Data之间的互相转换)

 

#pragma mark - JSON(对象)----->JSON字符串

 

1、原生方法

 

//JSON--->data--->JSON字符串
let data = try? JSONSerialization.data(withJSONObject: json, options: [])  
let jsonString = String(data: data, encoding: String.Encoding.utf8)

  

#pragma mark - JSON字符串----->JSON(对象)

 

1、原生方法

 

//JSON字符串-->data-->JSON对象
let jsonString = "{\"name\":\"zhangsan\",\"age\": 18}"
let jsonData = jsonString.data(using: String.Encoding.utf8, allowLossyConversion: false) ?? Data()
guard let json = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) else {
     return
}

 

2、三方框架(SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON)

 

//JSON字符串-->data-->JSON对象(测试发现直接使用JSON(jsonString).arrayValue是转化不出来的)
let data = jsonString.data(using: String.Encoding.utf8, allowLossyConversion: false) ?? Data()
let json = JSON(data).arrayValue

 

#pragma mark - JSON(对象)----->Data

 

1、原生

 

let data = try? JSONSerialization.data(withJSONObject: json, options: []) 

 

#pragma mark - Data----->JSON(对象)

 

1、原生方法

 

guard let array = try? JSONSerialization.jsonObject(with: data, options: []) as? [[String: AnyObject]] else {//转化失败就返回
     return
}

 

2、三方框架(SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON)

 

guard let array = JSON(data!).arrayObject as? [[String: AnyObject]] else {//转化失败就返回
    return
}

 

#pragma mark - JSON字符串----->Data

 

1、原生方法

 

// string字符串按照String.Encoding.utf8这种编码格式转化为data
if let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false) {
    //.........
}

 

#pragma mark - Data----->JSON字符串

 

1、原生方法

 

//只要符合String.Encoding.utf8这种编码的data都能转化成功
let string = NSString(data: data, encoding: String.Encoding.utf8.rawValue)

 

2、三方框架(SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON)

 

//如果转化后的字符串不是JSON类型的字符串,则输出null(注意: 该字符串的控制台输出的格式为JSON格式输出,实际类型是字符串!!!)
//本质是先转化为JSON对象再转化为des-s-ription!!!
let jsonString = JSON(jsonData).description

 

 

更多内容--> 博客导航 每周一篇哟!!!

 

有任何关于iOS开发的问题!欢迎下方留言!!!或者邮件[email protected] 虽然我不一定能够解答出来,但是我会请教iOS开发高手!!!解答您的问题!!!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift2.0语法元组发布时间:2022-07-13
下一篇:
Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap