Заканчивать SwiftyJSON Дока об инициализации https://github.com/SwiftyJSON/SwiftyJSON#initialization
В принципе единственный вариант, чтобы написать метод, чтобы преобразовать ваш объект в словарь и другой, который может построить свой объект из словаря.
Простой пример для двух свойств пользователя:
class User {
var name:String
var age:Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
extension User {
convenience init(userDict: [String : AnyObject]) {
let name = userDict["name"] as! String
let age = userDict["age"] as! Int
self.init(name: name, age: age)
}
func serialize() -> [String : AnyObject] {
return ["name": name, "age": age]
}
}
Затем, если вы хотите передать JSon строки вокруг вашего приложения вы можете проверить
NSJSONSerialization.dataWithJSONObject
NSString(data: yourdata, encoding: NSUTF8StringEncoding)
производить строка json. Существует также NSJSONSerialization.JSONObjectWithData
, чтобы конвертировать ваши данные в другую сторону.
Надеюсь, что это поможет!
Edit: Чтобы вернуть строку, содержащую JSON заменить метод сериализации со следующим:
func serialize() -> String? {
if let data = try? NSJSONSerialization.dataWithJSONObject(["name": name, "age": age], options: NSJSONWritingOptions(rawValue: 0)) {
if let s = NSString(data: data, encoding: NSUTF8StringEncoding) {
return s as String
}
}
return nil
}
Я сделал то же, что и вы, но я получил пустую строку json. – fcbflying
@fcbflying Я просто копировал и вставлял свой собственный код в пустой проект с SwiftyJSON, и он работает. Вы что-то изменили? –
Я добавляю '?' в конце моей собственности. когда я удаляю его, он работает. – fcbflying