I am receiving some json data in my app:
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonResponse options:NSJSONReadingAllowFragments
the 'json' object is obviously not a dictionary hence the error.
you are passing the NSJSONReadingAllowFragments flag to JSONObjectWithData:options:error: which says:
Specifies that the parser should allow top-level objects that are not an instance of NSArray or NSDictionary.
you need to check the class type of the object returned from the method.
Additionally you are under the false impression that you would get a mutable instance from the method call. If you want a mutable instance to be returned you need to use NSJSONReadingMutableContainers for mutable arrays/dics or NSJSONReadingMutableLeaves for mutable strings