博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS/swift之path、url、data 、String与Data之间的转换、data和字典之间转换、对象序列化反序列化
阅读量:4290 次
发布时间:2019-05-27

本文共 1444 字,大约阅读时间需要 4 分钟。

**************从path中获取数据************

let path=Bundle.main.path(forResource: "shengshiquxianarea.plist", ofType: nil)        let proviceDataArr:NSArray = NSArray(contentsOfFile:path!)!

String转成data

let str: NSString = "ZhuHai XY"                         let dataValue: Data = str.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue), allowLossyConversion: true)! as Data//字符串转data

data转成String

let dat:String = String(data: dataValue as Data, encoding: String.Encoding.utf8)!//data转字符串

dada转成字典,最后是转成具体的字典类型

let json = try?  JSONSerialization.jsonObject(with: returnResult.data!, options: JSONSerialization.ReadingOptions.allowFragments)as? [String:String]

字典序列化成data

let dict=["ss":"s"]            let dictata = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)

对象序列化与饭序列化,

如果要将一个对象持久化,需要把这个对象序列化。过去的做法是实现 NSCoding 协议,但实现 NSCoding 协议的代码写起来很繁琐,尤其是当属性非常多的时候。

Swift4 中引入了 Codable 协议,可以大大减轻了我们的工作量。我们只需要让需要序列化的对象符合 Codable 协议即可,不用再写任何其他的代码。

struct LanguageCodable {

    var name: String

    var version: Int

}

Encode操作:可以直接把符合了 Codable 协议的对象 encode 成 JSON 或者 PropertyList。

let swift = Language(name: "Swift", version: 4)

 

//encoded对象

let encodedData = try JSONEncoder().encode(swift)

 

//从encoded对象获取String

let jsonString = String(data: encodedData, encoding: .utf8)

print(jsonString)

Decode操作:

let decodedData = try JSONDecoder().decode(Language.self, from: encodedData)

print(decodedData.name, decodedData.version)

 

 

转载地址:http://hlmgi.baihongyu.com/

你可能感兴趣的文章
Spring MVC注解的一些案列
查看>>
Web大文件断点续传,快来看看吧!
查看>>
javascript高级编程3第二章:在html中使用javascript
查看>>
Android中热修复框架AndFix原理解析及案例使用
查看>>
手写代码实现EventBus
查看>>
关于JSON的相关知识
查看>>
SpringMVC基础_常用注解
查看>>
Spring框架-IOC容器和Bean的配置(1)
查看>>
查询内容在网页里面分页显示+跳页查看
查看>>
mysql substring函数截取值后赋给一个declare变量
查看>>
Java Thread 的 sleep() 和 wait() 的区别
查看>>
DbUtils入门
查看>>
每一个程序员需要了解的10个Linux命令
查看>>
service的自调用 VS service之间调用
查看>>
Android权限管理之Permission权限机制及使用
查看>>
重识Retrofit
查看>>
PowerDesigner(数据建模)使用大全
查看>>
RadioButton与CheckBox_优就业
查看>>
java中的throw与throws的区别
查看>>
js函数的传参是按值传对递
查看>>