JSON对NSObject数据模型的表示

我正试图parsing我的数据模型中填充的所有数据。 在nsobject中我有一些nsmutabledictionary,只是好奇是否有可能获得该对象types的jsonrepresentation? 我使用ASIHTTPREQUEST得到了无效的JSONtypes。 所以这里显而易见的问题是,如果这是可能的,或者我必须遍历对象的,并在nsdictionary中插入,然后parsing它?

谢谢

你可能想要检查我的实现将NSObject序列化为JSON,反之亦然 – https://github.com/QBurst/KVCObjectSerializer

如果不了解更多关于要序列化为JSON的对象的信息,则很难完全回答您的问题,但要解释哪些对象可以序列化(假设您使用的是TouchJSON)并不难。 如果您查看-isValidJSONObject中的-isValidJSONObject方法,您将看到可以序列化的类:

 - (BOOL)isValidJSONObject:(id)inObject { if ([inObject isKindOfClass:[NSNull class]]) { return(YES); } else if ([inObject isKindOfClass:[NSNumber class]]) { return(YES); } else if ([inObject isKindOfClass:[NSString class]]) { return(YES); } else if ([inObject isKindOfClass:[NSArray class]]) { return(YES); } else if ([inObject isKindOfClass:[NSDictionary class]]) { return(YES); } else if ([inObject isKindOfClass:[NSData class]]) { return(YES); } else if ([inObject respondsToSelector:@selector(JSONDataRepresentation)]) { return(YES); } else { return(NO); } } 

(为了清楚起见,代码重新格式化。)

所以,你可以看到NSNULL,NSNumber,NSString,NSArray,NSDictionary和NSData都可以序列化为JSON,并且任何实现-JSONDataRepresentation类也是可序列化的。

基于你显然正在获取的“JSON的无效types”错误,我猜测你至less有一个graphics中的对象不在上面列出的那些中,你可能想要实现-JSONDataRepresentation相应的课程。

更新:从您的评论,我看到你使用SBJSON而不是TouchJSON。 此页面包含SBJSON支持的types列表。