SwiftAeson 0.1.1

SwiftAeson 0.1.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2015年9月
SPM支持 SPM

James Parker 维护。



  • James Parker

SwiftAeson

使用方法

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

要在项目中使用 SwiftAeson,您需要为所有您想使用 JSON 进行序列化和反序列化的类型实现协议 ToJSONFromJSON。以下是一个示例。首先我们定义一个类 Test

class Test : Equatable {
    var test : String = "test"
    var booltest : Bool = false
    var booltest2 : Bool = true
    var nul : NSNull = NSNull()
    var doub : Double = 32.0

    init() {

    }

    required init ( test: String, booltest : Bool, booltest2 : Bool, nul : NSNull, doub : Double) {
        self.test = test
        self.booltest = booltest
        self.booltest2 = booltest2
        self.nul = nul
        self.doub = doub
    }
}

func ==( a : Test, b : Test) -> Bool {
    return a.test == b.test
        && a.booltest == b.booltest
        && a.booltest2 == b.booltest2
        && a.nul == b.nul
        && a.doub == b.doub
}

现在我们实现 ToJSONFromJSON。这适用于类,也适用于结构体和枚举。

extension Test : ToJSON, FromJSON {
    func toJSON() -> JValue {
        let test = "test" %= self.test
        let booltest = "booltest" %= self.booltest
        let booltest2 = "booltest2" %= self.booltest2
        let nul = "null" %= self.nul
        let doub = "double" %= self.doub

        return Aeson.object( [ test, booltest, booltest2, nul, doub])
    }

    static func fromJSON( value: JValue) -> Self? {
        switch value {
        case .JObject( let o):
            if let test : String = o %! "test" {
                if let booltest : Bool = o %! "booltest" {
                    if let booltest2 : Bool = o %! "booltest2" {
                        if let nul : NSNull = o %! "null" {
                            if let doub : Double = o %! "double" {
                                return self.init(test: test, booltest: booltest, booltest2: booltest2, nul: nul, doub: doub)
                            }
                        }
                    }
                }
            }

            return nil
        default:
            return nil
        }
    }
}

在这里,我们展示了如何序列化和反序列化我们的测试类。然后我们比较它们以测试原始版本和反序列化版本是否相等。

let original = Test()
let serialized = Aeson.encode( original)
let encoded = NSString(data: serialized!, encoding: NSUTF8StringEncoding)
print(encoded!)

let deserialized : Test? = Aeson.decode( serialized!)// Aeson.decode( test!)
print(deserialized!)

original == deserialized!

要求

安装

SwiftAeson 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中

pod "SwiftAeson"

作者

James Parker,[email protected]

许可证

SwiftAeson 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。