ios - 在 Swift 中用数组序列化我自己的对象的更优雅的方法是什么

标签 ios json serialization swift nsjsonserialization

我有一个看起来像这样的类:

class Foo {
    var bar = Int()
}

class Bar {
    var baz = String()
    var arr = [Foo]()
}

我有一个 Bar 结构的对象,我需要将其序列化为 JSON:

let instance = Bar()

通过标准库或一些第三方库更优雅的方法是什么?

提前致谢。

最佳答案

我建议采用这种方法:

class Foo {
    var bar = Int()
}

class Bar {
    var baz = String()
    var arr = [Foo]()

    var jsonDictionary: NSDictionary {
        return [
            "baz" : self.baz,
            "arr" : self.arr.map{ $0.bar }
        ]
    }
}

let bar = Bar()
bar.baz = "some baz"
bar.arr.append(Foo())

var error: NSError?
let data = NSJSONSerialization.dataWithJSONObject(bar.jsonDictionary, options: nil, error: &error)

if error == nil && data != nil {
    // success
}

关于ios - 在 Swift 中用数组序列化我自己的对象的更优雅的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230856/

相关文章:

java - google.gson.fromJson 其中 classOfT 是通用数组

java - 如何仅序列化对象的某些元素?

ios - 如何知道您构建的 iOS 应用程序是否适用于 64 位。

ios - 如何确保 UIScrollView 中只有特定部分出现滑动?

ios - 使用 react-native 在 IOS 中扫描 GS1 Databar 条形码

python - 我将如何着手构建 API 转换器?

python - 通过Python向对象添加新值时出现TypeError : . ..不是JSON可序列化错误

ios - 解析取消固定不会从本地数据存储中删除对象

java - 我必须解析 JSON 响应,我必须获取 leet talk 下的子节点(包含符号、字符、数字的随机字符串)

javascript - AJAX获取对象并将json字符串数据与当前值进行比较