                 return jsonArray[index]
             case .JInvalid(let error):
                 if let userInfo = error.userInfo{
-                    if let breadcrumb = userInfo["JSONErrorBreadCrumbKey"] as? String{
-                        let newBreadCrumb = breadcrumb + "/\(index)"
+                    if let breadcrumb = userInfo["JSONErrorBreadCrumbKey"] as? NSString{
+                        let newBreadCrumb = (breadcrumb as String) + "/\(index)"
                         let newUserInfo = [NSLocalizedDescriptionKey: "JSON Keypath Error: Incorrect Keypath \"\(newBreadCrumb)\"",
                                            "JSONErrorBreadCrumbKey": newBreadCrumb]
                         return JSONValue.JInvalid(NSError(domain: "JSONErrorDomain", code: 1002, userInfo: newUserInfo))

    default:
        return false
    }
}
            return nil
        }
    }
  
    var url: NSURL? {
        switch self {
        case .JString(let value):
            return NSURL(string: value)
        default:
            return nil
        }
    }
    var number: NSNumber? {
        switch self {
        case .JNumber(let value):
