Converting NSObject to NSDictionary

ios6, nsdictionary, nsjsonserialization, objective-c

Solution

NSDictionary *details = {@"name":product.name,@"color":product.color,@"quantity":@(product.quantity)};

NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:details 
                                                   options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
                                                     error:&error];

if (! jsonData) {
    NSLog(@"Got an error: %@", error);
} else {
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

Second part's source: Generate JSON string from NSDictionary in iOS

Problem

Hello I a class of type NSObject: ``` ProductDetails *details = [[ProductDetails alloc] init]; details.name = @"Soap1"; details.color = @"Red"; details.quantity = 4; ``` I want to pass the "details" object to a dictionary. I did, ``` NSDictionary *dict = [NSDictionary dictionaryWithObject:details forKey:@"details"]; ``` I am passing this dict to another method which performs a check on JSONSerialization: ``` if(![NSJSONSerialization isValidJSONObject:dict]) ``` And I am getting a crash on this check. Am I doing anything wrong here? I know that the details I am getting is a JSON object and I am assigning it to the properties in my ProductDetails class. Please help me. I am a noob in Objective-C. I now tried: ``` NSError* error; NSDictionary* json = [NSJSONSerialization JSONObjectWithData:(NSData*)details options:kNilOptions error:&error]; ``` All I need here is an easy way to convert details to NSData. I noticed that I have an array inside my object may be thats why all the ways I tried is throwing an exception. However since this question is becoming to big, I have started an another question thread for it where I have displayed the data I am getting inside the object - https://stackoverflow.com/questions/19081104/convert-nsobject-to-nsdictionary

Original source

Related problems