2015-08-24 2 views
0

Если у меня есть массив JSON, как это,Как использовать пару в NSArray не ключ-значение с Мантия

{ 
    "list": [ 
    "javascript", 
    "stockFields", 
    "stockLists" 
    ] 
} 

и две модели, как:

@interface stockList : MTLModel <MTLJSONSerializing> 

@property(nonatomic, copy, readonly) NSArray *stockListItems; 

@end 

@interface stockListItem : MTLModel 

@property(nonatomic, copy, readonly) NSString *javascript; 

@property(nonatomic, copy, readonly) NSString *stockFields; 

@property(nonatomic, copy, readonly) NSString *stockLists; 

@end 

stockList.m

+ (NSDictionary*)JSONKeyPathsByPropertyKey { 
    return @{ 
      @"stockListItems":@"list", 
      }; 
} 

+ (NSValueTransformer *)stockLstItemsJSONTransformer { 



} 

Как разобрать массив атрибутов массива JSON для хранения данныхListItem's propertyyty? Большое спасибо!

ответ

0

Вы можете разобрать JSON с помощью метода класса NSJSONSerializationJSONObjectWithData.

Это будет возвращать NSDictionary, а затем вы можете получить доступ к «список» поле, как так:

NSMutableDictionary *parsedJSON = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: nil]; 
stockListObj.stockListItems = parsedJSON[@"list"]; 
+0

Извините, что я хочу хранить список массива с использованием свойства stockListItem! PLS сказать мне снова! Спасибо ~ Как использовать + (NSValueTransformer *) stockLstItemsJSONTransformer? – SimonKira

1

Вы просто установить их по индексу, если вы уверены, что индексы:

javascript = stockListItems[0]; 
    stockFields = stockListItems[1]; 
    stockLists = stockListItems[2]; 

в противном случае, вы могли бы иметь другой Dictionary в list, чтобы получить точные данные, которые вы хотите, точно так же как:

{ 
    "list": [ 
    item1: "javascript", 
    item2: "stockFields", 
    item3: "stockLists" 
    ] 
} 

и теперь:

javascript = [list objectForKey:@"item1"]; 
stockFields = [list objectForKey:@"item2"]; 
stockLists = [list objectForKey:@"item3"]; 

Надеется, что это может помочь.