zhangs3721 / ZZJsonToModel

iOS Json自动生成Model文件( ZZJsonToModel 兼容 YYModel,MJExtension )

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS Json自动生成Model文件(ZZJsonToModel兼容YYModel,MJExtension)

  • 纯代码编写,无需安装任何插件,一个方法轻松搞定复杂Json生成Model文件。(兼容YYModel,MJExtension
  • 如果 ZZJsonToModel 为您节约了时间,您的🌟星星是我优化项目的动力,谢谢🙏🙏🙏
  • 如果您发现了bug,或有新的想法和建议,请及时通知我qq(461818526)。

示例:

json示例:

{
  "author" : { // 重复key
    "bools" : true,
    "author" : { // 重复key
      "authors" : {
        "author" : 19.100000000000001 
      },
      "author" : "zzz"
    }
  },
  "pages" : [],
  "book_name" : "Harry Potter",
  "book_info" : [
    {
      "mark" : "text",  // key值类型不同
      "uid" : "asdj12usdfff3mk",
      "type" : "text",
      "text" : "this is a text!"  // 特殊的key
    },
    {
      "mark" : 120,  // key值类型不同
      "uid" : "asdj12ujj2uu33mk",
      "type" : "video",
      "videos" : {  /// key不同
        "one" : "onebook.mp4"
      }
    },
    {
      "mark" : 110,  // key值类型不同
      "uid" : "asdj123sfdfu33nn",
      "type" : "img",
      "imgs" : {  /// key不同
        "one" : "onebook.png"
      }
    }
  ]
}

生成 YYModel 图: 生成 YYModel 图

注: 示例的json中,有几点特殊。

  • 1.重复的keyauthor
  • 2.特殊keytype
  • 3.数组book_info中的keymark的值类型不同。
  • 4.自动生成的类名有后缀+Class

处理方法:

  • 1.重复的key生成的类名,从第二个类起,类名前加一个Z
  • 2.属性名是系统保留字的,全部大写,因为大写不影响智能提示。
  • 3.如果数组中相同层级的key值类型不同,统一转化为id类型。
  • 4.项目中不同.h文件中类名相同会引发link报错,建议加上类名后缀防止报错。类名并不会污染数据。

使用ZZJsonToModel概要

1.下载ZZJsonToModel并导入项目中。ZZJsonToModel目录:

ZZJsonToModel 目录

2.导入头文件 #import "ZZJsonToModel.h",调用此方法

/// 生成 YYModel‘s model 调用方法
+ (BOOL)zz_createYYModelWithJson:(NSDictionary *)json fileName:(NSString *)fileName extensionName:(NSString *)extensionName fileURL:(NSURL *)url error:(Error)error;

/// 生成 MJExtension‘s model 调用方法
+ (BOOL)zz_createMJModelWithJson:(NSDictionary *)json fileName:(NSString *)fileName extensionName:(NSString *)extensionName fileURL:(NSURL *)url error:(Error)error;

如图: 调用主方法

3.导入生成好的model文件

导入生成好的model文件

4.引用.h #import "TestModel.h"后,使用YYModel(最好注释掉生成Model的代码)

引用.h 后,使用YYModel

此时 model 已可用,so easy ,记得点🌟星星,谢谢🙏🙏🙏

About

iOS Json自动生成Model文件( ZZJsonToModel 兼容 YYModel,MJExtension )


Languages

Language:Objective-C 100.0%