I have a fairly large and complex
Apple NSJSONSerialization Class Reference says;
You use the NSJSONSerialization class to convert JSON to Foundation objects and convert Foundation objects to JSON.
An object that may be converted to JSON must have the following properties:
The top level object is an NSArray or NSDictionary.
All objects are instances of NSString, NSNumber, NSArray, NSDictionary, or NSNull.
All dictionary keys are instances of NSString.
Numbers are not NaN or infinity.
Other rules may apply. Calling isValidJSONObject: or attempting a conversion are the definitive ways to tell if a given object can be converted to JSON data.
I think you should convert your dates to String and add them to your Dictionary. But it says; Other rules may apply. Calling isValidJSONObject: Just try to create a dictionary with your NSDate object and call the isValidJSONObject if it returns true it should be work.