Как использовать NSArray, а не пару ключ-значение с Mantle

Если у меня есть массив JSON, как это,

{
  "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 {



}

Как проанализировать свойства атрибута stockListItem для хранения массива списка JSON? Большое спасибо!

2 ответа

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

    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"];

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

Вы можете разобрать JSON с NSJSONSerialization метод класса JSONObjectWithData,

Это вернет NSDictionary и тогда вы можете получить доступ к полю "список", например, так:

NSMutableDictionary *parsedJSON = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: nil];
stockListObj.stockListItems = parsedJSON[@"list"];
Другие вопросы по тегам