首页 > 编程 > Swift > 正文

Swift中字典与JSON转换的方法

2020-03-09 17:45:43
字体:
来源:转载
供稿:网友

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]))")

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


注:相关教程知识阅读请移步到swift教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表