虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Swift编程 > Swift中字典与JSON转换的方法

Swift中字典与JSON转换的方法
类别:Swift编程   作者:码皇   来源:互联网   点击:

Swift中经常会遇到字典和字符串的相互转换,本篇文章主要介绍了Swift中字典与JSON转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

Swift中经常会遇到字典和字符串的相互转换,因此可以转换可以封装起来,转换代码如下:

    func convertStringToDictionary(text: String) -> [String:AnyObject]? {
    if let data = text.data(using: String.Encoding.utf8) {
    do {
    return try JSONSerialization.jsonObject(with: data, options: [JSONSerialization.ReadingOptions.init(rawValue: 0)]) as? [String:AnyObject] }
    catch let error as NSError {
    print(error) }
    }
    return nil}
    func convertDictionaryToString(dict:[String:AnyObject]) -> String {
    var result:String = "" do {
    //如果设置options为JSONSerialization.WritingOptions.prettyPrinted,则打印格式更好阅读 let jsonData = try JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions.init(rawValue: 0)) if let JSONString = String(data: jsonData, encoding: String.Encoding.utf8) {
    result = JSONString }
    }
    catch {
    result = "" }
    return result}
    func convertArrayToString(arr:[AnyObject]) -> String {
    var result:String = "" do {
    let jsonData = try JSONSerialization.data(withJSONObject: arr, options: JSONSerialization.WritingOptions.init(rawValue: 0)) if let JSONString = String(data: jsonData, encoding: String.Encoding.utf8) {
    result = JSONString }
    }
    catch {
    result = "" }
    return result}

实际测试:

 

    let jsonText:String = "{
    "order_info":[{
    "order_id":"1479828084819597144","channel":"ios","product_id":"02"}
    ,{
    "order_id":"1479828084819597144","channel":"ios","product_id":"02"}
    ]}
    " let dict = self.convertStringToDictionary(text: jsonText) print("字符串转换之后的字典:(dict!)") var dictionaryOrArray : [String: AnyObject] = [:] dictionaryOrArray["a"b"] = "cd" as AnyObject? dictionaryOrArray["strings"] = ["string", "another"] as AnyObject? dictionaryOrArray["keywdict"] = [ "anotherKey": 100, "Key2": "Val2"] as AnyObject? dictionaryOrArray["numbers"] = [ 1, 2, 3] as AnyObject? dictionaryOrArray["bools"] = [ true, false] as AnyObject? let convertResult:String = self.convertDictionaryToString(dict: dictionaryOrArray) print("字典转换之后的字符串:(convertResult)") let array:[String] = ["FlyElephant","keso"] print("数组转换之后的数组:(self.convertArrayToString(arr: array as [AnyObject]))")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关热词搜索: swift 字典 json swift3 0 字典转json swi