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

        get {
            if case let array as [Any] = self.value {
                let val = array[index]
                return val is NSNull ? nil : Json(value: val)
            }
            return nil
        }
        set {
            switch self.value {
            case var array as [Any]:
                array[index] = newValue.value ?? NSNull()
                self = Json(value: array)
            default: fatalError("Not an array.")
            }

    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)
    }
