         self.value = value
     }
     public init<S : Sequence>(_ elements: S) {
-        self.value = elements.map { Json.unwrap($0) ?? NSNull() }
+        self.value = elements.map { Json.unwrap($0) }
     }
     public init(_ elements: [String: Any]) {
         var dictionary = [String: Any](minimumCapacity: elements.count)
         for (key, value) in elements {
-            dictionary[key] = Json.unwrap(value)
+            let val = Json.unwrap(value)
+            dictionary[key] = val is NSNull ? nil : val
         }
         self.value = dictionary
     }

extension Json: ExpressibleByNilLiteral {
    
    public init(nilLiteral value: Void) {
        self.value = nil
    }
}


    public init(dictionaryLiteral elements: (String, Json) ...) {
        var dictionary = [String: Any](minimumCapacity: elements.count)
        for (key, value) in elements {
            let val = Json.unwrap(value)
            dictionary[key] = val is NSNull ? nil : val
        }
        self.init(value: dictionary)
    }
