为了账号安全,请及时绑定邮箱和手机立即绑定

在SWIFT中将字典转换为JSON

在SWIFT中将字典转换为JSON

牧羊人nacy 2019-07-17 14:28:52
在SWIFT中将字典转换为JSON我已经创建了下一个字典:var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary我得到了:[2: B, 1: A, 3: C]那么,如何将其转换为JSON呢?
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

SWIFT 3.0

使用SWIFT 3,名称为NSJSONSerialization和它的方法已经改变了,根据SWIFT API设计指南.

let dic = ["2": "B", "1": "A", "3": "C"]do {
    let jsonData = try JSONSerialization.data(withJSONObject: dic, options: .prettyPrinted)
    // here "jsonData" is the dictionary encoded in JSON data
    let decoded = try JSONSerialization.jsonObject(with: jsonData, options: [])
    // here "decoded" is of type `Any`, decoded from JSON data
    // you can now cast it with the right type        
    if let dictFromJSON = decoded as? [String:String] {
        // use dictFromJSON    }} catch {
    print(error.localizedDescription)}

SWIFT 2.x

do {
    let jsonData = try NSJSONSerialization.dataWithJSONObject(dic, options: NSJSONWritingOptions.PrettyPrinted)
    // here "jsonData" is the dictionary encoded in JSON data
    let decoded = try NSJSONSerialization.JSONObjectWithData(jsonData, options: [])
    // here "decoded" is of type `AnyObject`, decoded from JSON data
    // you can now cast it with the right type 
    if let dictFromJSON = decoded as? [String:String] {
        // use dictFromJSON    }} catch let error as NSError {
    print(error)}

SWIFT 1

var error: NSError?if let jsonData = NSJSONSerialization.dataWithJSONObject(dic, options: NSJSONWritingOptions.PrettyPrinted, error: &error) {
    if error != nil {
        println(error)
    } else {
        // here "jsonData" is the dictionary encoded in JSON data    }}if let decoded = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as? [String:String] {
    if error != nil {
        println(error)
    } else {
        // here "decoded" is the dictionary decoded from JSON data    }}


查看完整回答
反对 回复 2019-07-17
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我对你的问题的回答如下

let dict = ["0": "ArrayObjectOne", "1": "ArrayObjecttwo", "2": "ArrayObjectThree"]var error : NSError?let jsonData = try! NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted)let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)! as Stringprint(jsonString)

答案是

{
  "0" : "ArrayObjectOne",
  "1" : "ArrayObjecttwo",
  "2" : "ArrayObjectThree"}


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 1248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信