为POST请求将对象转换为JSON字符串

时间:2015-08-20 13:10:33

标签: json swift post ios8 swifty-json

我有一个对象,它是类似于这个类的实例:

BranchA

AnotherClass类似于:

git checkout BranchA
git rebase Branch2

好的,现在我需要将该对象(MyClass的实例)作为POST请求 string 参数传递,格式如下:

class MyClass {
    let aString: String
    let bString: String
    var cArray = [AnotherClass]()

    init etc...
}

任何想法如何实现这一目标?我正在使用Swift 1.2(和SwiftyJSON,如果有帮助的话) 谢谢!

2 个答案:

答案 0 :(得分:2)

首先,据我所知SwiftyJSON不支持对象映射到JSON ,它只适用于从某些源检索到的解析JSON对象。

如果你需要将对象映射到JSON ,你可以使用一些很好的库,如下所示:

两者的文档都很容易理解。但是,如果您不需要从非常复杂的类创建非常复杂的JSON,您可以使用某种方法自己处理它,将对象映射到JSON,并在类NSJSONSerialization的帮助下验证您的创建在使用之前。您可以在Strong Type Object Serialization to JSON (Nerd Alert)文章中自行制作地图,从中学到很多东西。

我希望这对你有所帮助。

答案 1 :(得分:0)

您需要通过添加以下函数将两个对象转换为字典:

func convertToDictionary() -> Dictionary<String, AnyObject> {

    return [
        "aString": self.aString,
        "bString": self.bString,
        "cArray": self.cArray
    ]
}

两个班级。

然后使用:

序列化它
let theJSONData = NSJSONSerialization.dataWithJSONObject(
  dictionary ,
  options: NSJSONWritingOptions(0),
  error: nil)

其中dictionary类似于dictionary = myClass.convertToDictionary

在序列化MyClass对象之前,甚至可以序列化数组中MyClass的嵌套对象。