             }
         }
         
-        self.init(nilLiteral: ())
+        throw DecodingError.dataCorrupted(DecodingError.Context(
+            codingPath: decoder.codingPath,
+            debugDescription: "Attempted to decode Json from unknown structure.")
+        )
     }
 }
 

            }
            
            while !container.isAtEnd {
                array.append((try? container.decode(Json.self)) ?? nil)
            }
            
            self.init(array)

            dictionary.reserveCapacity(keys.count)
            
            for key in keys {
                dictionary[key.stringValue] = try container.decode(Json.self, forKey: key)
            }
            
            self.init(dictionary)
