1.I create class objects then add value to my class with this code
csJastorPollQuestion *pq = [[csJastorPollQuestion alloc] initWithID:@"01" Name:@"AAA"];
2.I shown "csJastorPollQuestion" in NSLog it's present
#<csJastorPollQuestion: id = (null) { ID = 01; Name = AAA; }>
3.I convert "csJastorPollQuestion" to json string with this code
NSData *jsd = [NSJSONSerialization dataWithJSONObject:pq options:NSJSONWritingPrettyPrinted error:&er];
NSString *jsonString = [[NSString alloc] initWithData:jsd encoding:NSUTF8StringEncoding];
4.When I run my project it's shown error this
[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'
5.What is the right way for convert "csJastorPollQuestion" to json string?
The
dataWithJSONObject:options:error:
method only works on objects thatNSJSONSerialization
knows how to convert to JSON. That means:NSArray
orNSDictionary
NSString
,NSNumber
,NSArray
,NSDictionary
, orNSNull
.NSString
sNaN
.You need to convert to a dictionary or array representation to use this method.
I think you should reflect your own object to NSDictionary and used NSJSONSerialization convert to JSON string.
Reflect from attributes:
Convert to JSON string: