     }
 
     /// Returns JSON entry in the dictionary from a given key.
-    private func getObject(_ key: String) throws -> JSON {
+    public func get(_ key: String) throws -> JSON {
         guard case .dictionary(let dict) = self else {
             throw MapError.typeMismatch(
                 key: key, expected: Dictionary<String, JSON>.self, json: self)

            throw MapError.missingKey(key)
        }
        return object
    }
}



    /// Returns a JSON mappable array from a given key.
    public func get<T: JSONMappable>(_ key: String) throws -> [T] {
        let array: [JSON] = try get(key)
        return try array.map(T.init(json:))
    }

    /// Returns a JSON mappable dictionary from a given key.
    public func get<T: JSONMappable>(_ key: String) throws -> [String: T] {
        let object: JSON = try get(key)
        guard case .dictionary(let value) = object else {
            throw MapError.typeMismatch(
                key: key, expected: Dictionary<String, JSON>.self, json: object)
