美文网首页
YYModel使用小结

YYModel使用小结

作者: 小小小Lucky | 来源:发表于2019-08-08 11:43 被阅读0次

YYmodelgitHub地址

在gitHub上README中有中文说明,以及怎么导入到项目中

现在介绍一下怎么解析复杂多层的数据

参照README中的介绍以及结合我自己项目的经验做一个介绍

1,json数据有一层或者两层多层,但是每一层的嵌套的时候都是字典类型,即为:(不要管这个json格式对不对)

    “1”:“1”,

    “2”:{

            “3”:“3“,

            ”4“:{

                      ”7“:”7“

                    },

  ”5“:”5“,

  ”6“:”6“

            }

}

就是这样一层一层的字典形式的,只需要一层一层的把对应的字段写入model中,YYModel会自动转。

例子:

// JSON:{"n":"Harry Pottery","p":256,"ext": {"desc":"A book written by J.K.Rowing."},"ID":100010}// Model:@interfaceBook:NSObject@propertyNSString*name;@propertyNSIntegerpage;@propertyNSString*desc;@propertyNSString*bookID;@end@implementationBook//返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。+ (NSDictionary*)modelCustomPropertyMapper {return@{@"name":@"n",@"page":@"p",@"desc":@"ext.desc",@"bookID": @[@"id",@"ID",@"book_id"]};}@end

重点是这张图片

图片.png

2,json数据中有多层,但是是不同类型,此时就要用到:容器类属性

@classShadow,Border,Attachment;@interfaceAttributes@propertyNSString*name;@propertyNSArray*shadows;//Array<Shadow>@propertyNSSet*borders;//Set<Border>@propertyNSMutableDictionary*attachments;//Dict<NSString,Attachment>@end@implementationAttributes// 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。+ (NSDictionary*)modelContainerPropertyGenericClass {return@{@"shadows": [Shadowclass],@"borders": Border.class,@"attachments":@"Attachment"};}@end

将每一层的数据放到一个容器里面,容器的数据类型由返回的json决定。

图片.png

图片.png

图片.png

图片.png

3,model里面如何嵌套model(满足的要求就是  嵌套的都是字典类型)

图片.png

图片.png

4,YYmodel还有别的功能,都在README中,目前我就用这个解析数据,满足任何坑的后台,能够拿到任何层的数据

纯字典和字典数组混合,替换关键字,映射类的方法不同

映射:// 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。+ (NSDictionary*)modelContainerPropertyGenericClass {return@{@"shadows": [Shadowclass],@"borders": Border.class,@"attachments":@"Attachment"};}替换字符:+ (NSDictionary*)modelCustomPropertyMapper {return@{@"name":@"n",@"page":@"p",@"desc":@"ext.desc",@"bookID": @[@"id",@"ID",@"book_id"]};}

作者:罗显友

链接:https://www.jianshu.com/p/992ce23453ee

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

网友评论

      本文标题:YYModel使用小结

      本文链接:https://www.haomeiwen.com/subject/sratjctx.html