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

    default:
        return false
    }
}
                return jsonArray[index]
            case .JInvalid(let error):
                if let userInfo = error.userInfo{
                    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))
