GithubHelp home page GithubHelp logo

bruce-wmm / zzjsontomodel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhangs3721/zzjsontomodel

1.0 1.0 0.0 128 KB

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

Objective-C 100.00%

zzjsontomodel's Introduction

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 ,记得点🌟星星,谢谢🙏🙏🙏

zzjsontomodel's People

Contributors

zhangs3721 avatar

Stargazers

Wangmingming avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.