1

У меня есть пользовательский объект класса, который содержит пользовательский объект в нем:Как преобразовать объект в JSON, когда объект имеет внутренний объект

@interface Order : NSObject 

@property (nonatomic, retain) NSString *OrderId; 
@property (nonatomic, retain) NSString *Title; 
@property (nonatomic, retain) NSString *Weight; 
@property (nonatomic, retain) User *User 
- (NSMutableDictionary *)toNSDictionary; 
... 
- (NSMutableDictionary *)toNSDictionary 
{ 

    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
    [dictionary setValue:self.OrderId forKey:@"OrderId"]; 
    [dictionary setValue:self.Title forKey:@"Title"]; 
    [dictionary setValue:self.Weight forKey:@"Weight"]; 

    return dictionary; 
} 

В toNSDictinary функции я не отображенный User объекта.
Что такое хороший способ конвертировать объект в nsdictionary в такой ситуации?

+0

ясно с ур вопрос – Chandru

ответ

2

Измените toNSDictionary метод:

- (NSMutableDictionary *)toNSDictionary 
{ 

    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
    [dictionary setValue:self.OrderId forKey:@"OrderId"]; 
    [dictionary setValue:self.Title forKey:@"Title"]; 
    [dictionary setValue:self.Weight forKey:@"Weight"]; 

    NSMutableDictionary *userDictionary = [NSMutableDictionary dictionary]; 
    [userDictionary setValue:self.User.someProperty1 forKey:@"someProperty1"]; 
    [userDictionary setValue:self.User.someProperty2 forKey:@"someProperty2"]; 
    [dictionary setValue:userDictionary forKey:@"User"]; 

    return dictionary; 
} 
0
- (NSMutableDictionary *)toNSDictionary 
{ 

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
[dictionary setValue:self.OrderId forKey:@"OrderId"]; 
[dictionary setValue:self.Title forKey:@"Title"]; 
[dictionary setValue:self.Weight forKey:@"Weight"]; 

NSMutableDictionary *userDictionary = [NSMutableDictionary dictionary]; 
[userDictionary setValue:self.User.someProperty1 forKey:@"someProperty1"]; 
[userDictionary setValue:self.User.someProperty2 forKey:@"someProperty2"]; 
[dictionary setObject:userDictionary forKey:@"User"]; 

return dictionary; 
} 

при установке словаря для ключа попробуйте использовать

[dictionary setObject: forKey: ] 
Смежные вопросы