1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhangs3721-ZZMonster

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 4.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 19:37 2c6d8b5

iOS Json自动生成 Model файла (ZZJsonToModel совместим с YYModel, MJExtension)

  • «ZZJsonToModel» позволяет легко и быстро генерировать файлы модели для сложных JSON-структур без необходимости установки дополнительных плагинов. Он совместим с YYModel и MJExtension.
  • Если ZZJsonToModel сэкономил вам время, ваши звёзды 🌟 — это мотивация для меня оптимизировать проект. Спасибо🙏🙏🙏
  • Если вы обнаружили ошибку или у вас есть новые идеи и предложения, пожалуйста, сообщите мне на qq (461818526).

Пример:

json пример:

{
  "author": { // повторяющийся ключ
    "bools": true,
    "author": { // повторяющийся ключ
      "authors": {
        "author": 19.100000000000001
      },
      "author": "zzz"
    }
  },
  "pages": [],
  "book_name": "Harry Potter",
  "book_info": [
    {
      "mark": "text",  // значение ключа имеет другой тип
      "uid": "asdj12usdfff3mk",
      "type": "text",
      "text": "this is a text!"  // специальный ключ
    },
    {
      "mark": 120,  // значение ключа имеет другой тип
      "uid": "asdj12ujj2uu33mk",
      "type": "video",
      "videos": {  /// ключ отличается
        "one": "onebook.mp4"
      }
    },
    {
      "mark": 110,  // значение ключа имеет другой тип
      "uid": "asdj123sfdfu33nn",
      "type": "img",
      "imgs": {  /// ключ отличается
        "one": "onebook.png"
      }
    }
  ]
}

Примечание: в примере JSON есть несколько особенностей:

  1. Повторяющийся ключ «author».
  2. Специальный ключ «type».
  3. Значения ключа «mark» в массиве «book_info» имеют разные типы.
  4. Автоматически сгенерированные имена классов имеют суффикс «+Class».

Обработка:

  1. Для повторяющихся ключей «author» имена классов, начиная со второго класса, будут иметь префикс «Z».
  2. Если имя свойства является зарезервированным словом системы, оно будет преобразовано в верхний регистр, чтобы не влиять на интеллектуальные подсказки.
  3. Если значения ключа в одном и том же уровне массива имеют разные типы, они будут преобразованы в тип «id».
  4. В проекте, если в разных файлах .h встречаются одинаковые имена классов, это может вызвать ошибки при связывании. Рекомендуется добавить суффиксы к именам классов для предотвращения ошибок. Это не повлияет на данные.

Использование ZZJsonToModel:

1. Скачайте ZZJsonToModel и добавьте его в свой проект. Каталог ZZJsonToModel выглядит следующим образом:

2. Импортируйте заголовок #import "ZZJsonToModel.h" и вызовите этот метод:


/// Метод создания модели YYModel
+ (BOOL)zz_createYYModelWithJson:(NSDictionary *)json fileName:(NSString *)fileName extensionName:(NSString *)extensionName fileURL:(NSURL *)url error:(Error)error;

/// Метод создания модели MJExtension
+ (BOOL)zz_createMJModelWithJson:(NSDictionary *)json fileName:(NSString *)fileName extensionName:(NSString *)extensionName fileURL:(NSURL *)url error:(Error)error;

Как показано на рисунке:

3. Импортируйте сгенерированный файл модели.

4. После импорта сгенерированного файла модели #import "TestModel.h", используйте YYModel (рекомендуется закомментировать код генерации модели).

Теперь модель готова к использованию. Просто отметьте 🌟 звезду, спасибо🙏🙏🙏

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhangs3721-ZZMonster.git
git@api.gitlife.ru:oschina-mirror/zhangs3721-ZZMonster.git
oschina-mirror
zhangs3721-ZZMonster
zhangs3721-ZZMonster
master