美文网首页
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