有沒有使用JSONModel庫而不繼承JSONModel類的方法。Objective-C使用JSONModel將JSON反序列化爲對象
我想將JSON反序列化爲Objective C類而無需繼承JSONModel形式。
是否有另一個庫將JSON反序列化爲沒有繼承的對象?
有沒有使用JSONModel庫而不繼承JSONModel類的方法。Objective-C使用JSONModel將JSON反序列化爲對象
我想將JSON反序列化爲Objective C類而無需繼承JSONModel形式。
是否有另一個庫將JSON反序列化爲沒有繼承的對象?
爲什麼你不想從JSONModel繼承?
的事情是,當你從JSONModel繼承你繼承庫的所有工具。它的目的就是這樣使用,因爲庫公開的方法不是靜態的,所以你需要從JSONModel派生實例。
我不想繼承,因爲我的類只會附加到Json,也許有一天我想反序列化xml到我的類對象 – moran
您不必在iOS中使用JSON序列化庫。從iOS 5.0起,有一個類NSJSONSerialization可用於執行此操作。 https://developer.apple.com/library/ios/documentation/foundation/reference/nsjsonserialization_class/Reference/Reference.html
考慮轉換的聯繫人列表,以JSON字符串
+(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特定的答案。
我的錯誤,我想從json反序列化爲對象。我的對象包含許多屬性(其中一些是其他對象)。有沒有類可用於此? – moran
檢查我有關使用NSJsonSerialization類將json字符串解序列化爲NSDictionary/NSArray的另一個答案。 –
從iOS5開始,你可以使用NSJSONSerialization類來進行序列化和反序列化。對於反序列化,你首先需要將你的json字符串轉換爲NSData對象,調用類方法JSONObjectWithData
NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&error];
使用isKindOfClass你可以找到,如果這是一個字典或數組,因爲JSONObjectWithData將返回一個NSDictionary或NSArray的,這取決於是否您的JSON字符串表示的字典或數組。
你如何將NSDictionary字典轉換爲我的對象? – moran
你可以使用像myobj.email = [dict objectForKey:@「email」];爲所有的屬性做這個。 mydict中的關鍵是來自json。 (U sud使用ur對象的動態屬性) –
是否有可能你想要使用擴展自NSManagedObject的類的JSONModel? – javierfdezg
問了第1000次 –
Daij-Djan你有答案嗎? – moran