ios - 基于属性与JSONModel的动态模型级联

标签 ios objective-c jsonmodel

给定以下JSON blob:

[
  {
    type: "audio",
    title: "Audio example title",
  },
  {
    type: "video",
    title: "Video example title",
  },
  {
    type: "audio",
    title: "Another audio example title",
  },
]

和两个JSONModel模型类(AudioModel,VideoModel)。在将JSON映射到模型时,JSONModel是否可以基于type属性自动创建这些模型类之一?

最佳答案

可以使用for..in循环并检查type属性并根据如下类型创建Model对象

NSMutableArray *audioModelArray = [NSMutableArray alloc] init];
NSMutableArray *videoModelArray = [NSMutableArray alloc] init];

    for(NSdictionary *jsonDict in jsonArray) {
        if(jsonDict[@"type"] isEqualToString:@"audio") {
             AudioModel *audio  = [AudioModel alloc]initWithTitle:jsonDict[@"title"]]; 
            [audioModelArray addObject: audio];
        } else {
          VideoModel *audio  = [VideoModel alloc]  initWithTitle:jsonDict[@"title"]];
         [videoModelArray addObject: audio];
        }
    }

那么您可以遍历audioModelArrayvideoModelArray对象以访问audoModel和videoModel对象及其属性。

关于ios - 基于属性与JSONModel的动态模型级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719818/

相关文章:

ios - iOS单元测试没有响应的可能原因是什么?

ios - 尝试在 iOS 中获取 Google 日历时,控制台显示奇怪的 api#channel 冲突。怎么解决?

objective-c - C 中的 OpenSSL Diffie Hellman DER 编码

iPhone 游戏保存

ios - 如何使用 Firebase 和 Swift 将现有节点添加到具有不同父节点的另一个节点作为引用?

ios - SpriteKit 游戏中的多任务问题

ios - iCarousel 拉动刷新并加载更多

swift - 在 Swift 中使用 JSONModel 解析自定义模型数组

ios - 如何在 Objective-c 中获取数组类型 [1,2] 而不是 (1, 2)?

ios - JSON 模型 - 如果使用方法 "arrayOfModelsFromDictionaries",请不要将所有对象添加到数组中