使用Jsonmodel需要注意事项

使用Jsonmodel需要注意事项

我们知道josnmodel可以帮助我们很方面的把json字符转模型 ,但是使用中需要注意以下几点

  • 当Model的属性和json 不一致时
        
          {
         "order_id": 104,
         "order_details" : [
           {
             "name": "Product#1",   
             "price": {
               "usd": 12.95
             }
           }
         ]
       }
       //以上是json字符串

       @interface OrderModel : JSONModel
       @property (assign, nonatomic) int id;
       @property (assign, nonatomic) float price;
       @property (strong, nonatomic) NSString* productName;
       @end
       
       @implementation OrderModel
       
       +(JSONKeyMapper*)keyMapper
       {
         return [[JSONKeyMapper alloc] initWithDictionary:@{
           @"order_id": @"id",
           @"order_details.name": @"productName",
           @"order_details.price.usd": @"price"
         }];
       }
       
       @end 
       //以上是对应的 属性  只有返回的json和Model属性不一致的时候才需要这个方法keyMapper
       
   ```
       
- 可以设置全局的属性
```objectivec

                [JSONModel setGlobalKeyMapper:[
                   [JSONKeyMapper alloc] initWithDictionary:@{
                     @"item_id":@"ID",
                     @"item.name": @"itemName"
                  }]
               ];
  • 属性为非必须的时候(也就是可选的,或者需要忽略的)

       @property (strong, nonatomic) NSString<Optional>* name;//可选的
       
       @property (strong, nonatomic) NSString<Ignore>* customProperty;//忽略的
  • 最后也是最重要的在实际使用中发现基本数据类型 float NSInterger 等无法直接使用<Optial>最后找到的解决办法是设置全局可选

例如我做的cell自适应高度的时候 cell的高度是存储在Model的属性中的需要设置可选


      @property(nonatomic,assign)float  height;//缓存的高度
      +(BOOL)propertyIsOptional:(NSString*)propertyName
    {
      if ([propertyName isEqualToString: @"height"]) return YES;
      return NO;
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,350评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,590评论 4 61
  • Magical Data Modelling Framework for JSON https://github....
    橙娃阅读 942评论 1 0
  • 高山细水流长,岁月匆匆忙忙, 英雄不畏命短,好汉只怕日常, 思人生无边苦,看淡生死茫茫。
    楠希彤阅读 166评论 1 16
  • 《非暴力沟通》今天全部读完了,作者以姥姥的故事最圆满的最温暖的给书做了后记,也温暖了感染了读者——我。
    女女侠阅读 589评论 0 0

友情链接更多精彩内容