     
     fileprivate let value: Any?
     
-    fileprivate init(value: Any) {
+    fileprivate init(value: Any?) {
         self.value = value
     }
     

extension Json: CustomStringConvertible {
    
    public var description: String {
        switch self.value {
        case nil: return "nil"
        case let number as NSNumber: return number.description
        case let string as String: return string
        case let array as [AnyObject]:
            var result = "["
            var first = true
            for item in array {

            }
            result += "]"
            return result
        case let dictionary as [String: Any]:
            var result = "["
            var first = true
            for (k, v) in dictionary {
