Objective-C使用JSONModel将JSON反序列化为对象

有没有一种方法使用JSONModel库没有inheritanceJSONModel类。

我想反序列化JSON到Objective C类而不inheritanceJSONModelforms。

是否有另一个库,将JSON反序列化为没有inheritance的对象?

您不必在iOS中使用JSON序列化库。 从iOS 5.0开始,有一个类NSJSONSerialization可用于执行此操作。 https://developer.apple.com/library/ios/documentation/foundation/reference/nsjsonserialization_class/Reference/Reference.html

考虑将联系人列表转换为jsonstring的代码

+(NSString*) jsonStringRepresentationOfSelectedReceiptients:(NSArray*) contactsList { NSMutableArray* contactsArray = [[NSMutableArray alloc]init]; for (ContactObject *contactObj in contactsList) { NSDictionary* ltPair = @{@"phone_no": [NSNumber numberWithLongLong:contactObj.phoneNo, @"email_id": contactObj.emailId, @"display_name": contactObj.displayName]}; [contactsArray addObject:ltPair]; } NSData *jsonData=[NSJSONSerialization dataWithJSONObject:contactsArray options:NSJSONWritingPrettyPrinted error:nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"json string: %@", recptJson); return jsonString; } 

希望这可以帮助。 (我给了ios特定的答案,因为标签与iOS相关。

从iOS5开始,你可以使用NSJSONSerialization类来进行序列化和反序列化。 对于反序列化,你首先要把你的jsonstring转换成一个NSData对象,然后调用类方法JSONObjectWithData

 NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *error; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&error]; 

使用isKindOfClass,你可以找出这是一个字典或数组,因为JSONObjectWithData将返回一个NSDictionary或一个NSArray,取决于你的JSONstring表示一个字典或数组。

为什么你不想从JSONModelinheritance?

事情是,当你从JSONModelinheritance你是inheritance库的所有工具。 它的目的就是这样使用,因为库公开的方法不是静态的,所以你需要从JSONModel派生实例。