Skip to content

Commit

Permalink
update json serializer
Browse files Browse the repository at this point in the history
  • Loading branch information
tanner0101 committed Jan 27, 2016
1 parent edffb94 commit 2db13f8
Showing 1 changed file with 33 additions and 44 deletions.
77 changes: 33 additions & 44 deletions Sources/JSONSerializer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,66 +2,55 @@ import Foundation

class JSONSerializer {

class func serialize(object: Any) -> String {

if let dict = object as? [String: Any] {
var s = "{"
var i = 0

for (key, val) in dict {
s += "\"\(key)\":\(self.serialize(val))"
if i != (dict.count - 1) {
s += ","
}
i += 1
class func serializeDict(dict: [String: Any]) -> String {
var s = "{"
var i = 0

for (key, val) in dict {
s += "\"\(key)\":\(self.serialize(val))"
if i != (dict.count - 1) {
s += ","
}
i += 1
}

return s + "}"
} else if let dict = object as? NSDictionary {
var s = "{"
var i = 0

for (key, val) in dict {
s += "\"\(key)\":\(self.serialize(val))"
if i != (dict.count - 1) {
s += ","
}
i += 1
}
return s + "}"
}

return s + "}"
} else if let array = object as? [Any] {
var s = "["
class func serializeArr(arr: [Any]) -> String {
var s = "["

for i in 0 ..< array.count {
s += self.serialize(array[i])
for i in 0 ..< arr.count {
s += self.serialize(arr[i])

if i != (array.count - 1) {
s += ","
}
if i != (arr.count - 1) {
s += ","
}
}

return s + "]"
} else if let array = object as? NSArray {
var s = "["

for i in 0 ..< array.count {
s += self.serialize(array[i])
return s + "]"
}

if i != (array.count - 1) {
s += ","
}
}
class func serialize(object: Any) -> String {

return s + "]"
if let dict = object as? [String: Any] {
return self.serializeDict(dict)
} else if let dict = object as? [String: String] {
return self.serializeDict(dict)
} else if let array = object as? [Any] {
return self.serializeArr(array)
} else if let array = object as? [String] {
return self.serializeArr(array)
} else if let array = object as? [Int] {
return self.serializeArr(array)
} else if let string = object as? String {
return "\"\(string)\""
} else if let number = object as? Int {
return "\(number)"
} else {
print(object)
print(Mirror(reflecting: object))
return ""
return "\"\""
}

}
Expand Down

0 comments on commit 2db13f8

Please sign in to comment.