     
     @objc(responseJSON)
     func responseJSONPromise() -> AnyPromise {
-        let promise = Promise<[String : Any]> { fullfill, reject in
+        let promise = Promise<Any> { fullfill, reject in
             self.responseJSON(handler: { (json, error) in
                 if error != nil {
                     reject(error!)
                 } else {
-                    if json.dictionaryObject == nil {
-                        reject(createError("Dictionary is nil for [\(json.rawString() ?? "")]"))
+                    if json.arrayObject == nil || json.dictionaryObject == nil {
+                        reject(createError("JSON is nil for [\(json.rawString() ?? "")]"))
                     } else {
-                        fullfill(json.dictionaryObject!)
+                        if json.dictionaryObject != nil { fullfill(json.dictionaryObject!) }
+                        else if json.arrayObject != nil { fullfill(json.arrayObject!) }
+                        else { fatalError("JSON Error") }
                     }
                 }
             })

        return AnyPromise(promise)
    }
    
    @objc
    func responseJSON(withBlock block:@escaping ([String : Any], Error?) -> Void) {
        self.responseJSON(handler: { (json, error) in
            if error != nil { block([:], error); return }
            if json.dictionaryObject == nil {

        })
    }
    
}
