SwiftSerializer 0.6

SwiftSerializer 0.6

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release May 2016
SPMSupports SPM

Maintained by Marcin Krzyżanowski.


Downloads

Total4,467
Week0
Month0

Installs

Apps165
Test Targets24
powered by Segment

GitHub

Stars95
Watchers22
Forks33
Issues4
Contributors13
Pull Requests4

Code

Files2
LOCLines of Code 131


Swift Serializer

Apple Swift Strong Type Object Serialization to JSON

Usage

import XCTest

class Person:Serializable {
    var Name : String
    var Surname : String
    var BirthTimestamp : NSNumber
    var Animals : Array<Animal>


    init(Name:String, Surname:String, BirthTimestamp:NSNumber) {
        self.Name = Name
        self.Surname = Surname
        self.BirthTimestamp = BirthTimestamp
        self.Animals = Array<Animal>()
    }
}

class Animal:Serializable {
    var Nickname : String
    var Kind : String
    var Trick : String?

    init(Nickname : String, Kind : String, Trick : String?) {
        self.Nickname = Nickname
        self.Kind = Kind
        self.Trick = Trick
    }
}

class SerializationTests: XCTestCase {
    func test_serialization_works() {
        var john = Person(Name: "John", Surname: "Doe", BirthTimestamp: 512463600000)

        john.Animals.append(Animal(Nickname: "Fluffy", Kind: "Dog", Trick: "Rollover"))
        john.Animals.append(Animal(Nickname: "Purry", Kind: "Cat", Trick: nil))

        println(john.toJson()) //will give binary data to include in HTTP Body
        println(john.toJsonString()) //will give the exact string in JSON

        var expected = "{\"BirthTimestamp\":512463600000,\"Name\":\"John\",\"Animals\":[{\"Trick\":\"Rollover\",\"Kind\":\"Dog\",\"Nickname\":\"Fluffy\"},{\"Kind\":\"Cat\",\"Nickname\":\"Purry\"}],\"Surname\":\"Doe\"}";

        XCTAssertEqual(john.toJsonString(), expected,"")
    }
}

Contributing

We will accept all valid Pull Requests, Feature Requests and any other Issues made on this project. Any questions just ask.