您的位置:首页 > 移动开发 > Swift

swift3.0 字典 <-互转-> 字符串

2016-11-10 00:00 441 查看
贡献者:赵大财
博客:https://my.oschina.net/zhaodacai
GitHub:https://github.com/zhaodacai

字典 转成 字符串: 下面有写好的扩展你可以直接使用

var dictionary = [[String:Any]]()
let dict1 = ["age":"22","ddd":"gg"]
let dict2 = ["age":"33","w":""]
dictionary.append(dict1)
dictionary.append(dict2)
let data = try? JSONSerialization.data(withJSONObject: dictionary, options: [])
let str = String(data:data!, encoding: String.Encoding.utf8)!
print(str )

字符串 转成 字典:

let json:String = (CHUser.shareInstance.userInfo?.tag_data)!
//json = json.replacingOccurrences(of: "/", with: "") //加上这句直接打印可中文

guard let jsonData = json.data(using: .utf8) else {
return
}
do {
let dict = try JSONSerialization.jsonObject(with: jsonData, options:JSONSerialization.ReadingOptions.mutableContainers)
print(dict)
} catch  {
print("失败")
}


2016年11月29日 封装了一下

extension String  {

var md5: String! {
let str = self.cString(using: String.Encoding.utf8)
let strLen = CC_LONG(self.lengthOfBytes(using: String.Encoding.utf8))
let digestLen = Int(CC_MD5_DIGEST_LENGTH)
let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)

CC_MD5(str!, strLen, result)

let hash = NSMutableString()
for i in 0..<digestLen {
hash.appendFormat("%02x", result[i])
}

result.deallocate(capacity: digestLen)

return String(format: hash as String)
}

var toAny:Any! {
guard let jsonData = self.data(using: .utf8) else {
return nil
}

do {
let any = try JSONSerialization.jsonObject(with: jsonData, options:JSONSerialization.ReadingOptions.mutableContainers)
return any
} catch  {
return nil
}
}

}

////////////////////////////////////////////////////
extension NSArray {

var toString:String! {
do {
let data = try JSONSerialization.data(withJSONObject: self, options: [])
let str = String(data:data, encoding: String.Encoding.utf8)!
return str
} catch  {
return ""
}
}
}

////////////////////////////////////////////////////
extension NSDictionary {

var toString:String! {
do {
let data = try JSONSerialization.data(withJSONObject: self, options: [])
let str = String(data:data, encoding: String.Encoding.utf8)!
return str
} catch  {
return ""
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息