     public init(dictionaryLiteral elements: (String, Json) ...) {
         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.init(value: dictionary)
     }

extension Json {
    
    public var isNil : Bool {
        return self.value == nil || self.value is NSNull
    }
    
    public var isBool : Bool {

extension Json {
    
    public var data: Data? {
        if JSONSerialization.isValidJSONObject(self.value) {
            return try? JSONSerialization.data(withJSONObject: self.value, options: [])
        }
        return nil
    }
