如何将数组对象转换为 JSON 字符串。IOS 8。斯威夫特 1.2

And*_*ham 2 json ios swift

我得到了一个像这样的对象数组

    var AuditActivityDayListJson =  Array<AuditActivityDayModel>()


    class AuditActivityDayModel : Serializable {
    var DayNumber : Int
    var DayType : Int
    var DayDateDisplay : String
    var DayDate : String

    override init() {
        DayNumber = 0
        DayType = 0
        DayDateDisplay = ""
        DayDate = ""
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能把它转换成这样的 json 字符串

[{"DayType":1,"DayNumber":1,"DayDate":"2015-06-30", "DayDateDisplay":""},{"DayType":1,"DayNumber":2,"DayDate":"2015-07-01","DayDateDisplay":""}]
Run Code Online (Sandbox Code Playgroud)

谢谢大家的回答。请帮忙。

Ste*_*fan 5

如果你想使用像 NSJSONSerialization 这样的内置函数( https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/),你基本上需要将所有对象转换为数组、字典、字符串和数字

在您的情况下,这应该有效,在转换为 JSON 字符串之前将您的对象转换为字典:

    let jsonCompatibleArray = AuditActivityDayListJson.map { model in
        return [
            "DayNumber":model.DayNumber,
            "DayType":model.DayType,
            "DayDateDisplay":model.DayDateDisplay,
            "DayDate":model.DayDate
        ]
    }
    let data = NSJSONSerialization.dataWithJSONObject(jsonCompatibleArray, options: nil, error: nil)
    let jsonString = NSString(data: data!, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)

对于更复杂的场景,我推荐 SwiftyJSON ( https://github.com/SwiftyJSON/SwiftyJSON ),它使错误处理更加容易。