Обзоры

json-mapper - генератор Swift ObjectMapper-классов из JSON для Mac

json-mapper - генератор Swift ObjectMapper-классов из JSON для Mac

Что это

json-mapper - это бесплатная нативная утилита для macOS, которая генерирует Swift-model-классы для использования с библиотекой ObjectMapper. До появления Codable в Swift 4 (2017) ObjectMapper был одним из самых популярных способов парсить JSON в iOS-приложениях, и многие легаси-проекты до сих пор используют его. json-mapper автоматизирует создание model-классов под эту архитектуру.

Проект создан AppCraft LLC в 2016 году, последний коммит - ноябрь того же года. На GitHub около 30 звёзд - ниша узкая, но для тех кто работает с ObjectMapper - инструмент незаменимый.

Важно понимать контекст: в 2026 году для новых iOS-проектов ObjectMapper обычно не используется. Apple ввела встроенный Codable, который работает быстрее, имеет лучшую поддержку Xcode и не требует внешних зависимостей. Поэтому json-mapper - это инструмент для поддержки существующего кода, а не для нового.

Программа распространяется как Swift-проект на GitHub без готового DMG. Чтобы использовать, нужно собрать самостоятельно через Xcode. Учитывая возраст проекта (9 лет на момент 2026), при сборке могут возникнуть проблемы совместимости с современным Swift и Xcode - возможны минорные правки в коде.

Кому подойдёт

В первую очередь - iOS-разработчикам, поддерживающим legacy-проекты на ObjectMapper. Если вы взяли в работу старое приложение 2014-2017 года, в котором сотни моделей построены на ObjectMapper - писать новые в том же стиле проще через json-mapper, чем переписывать всю архитектуру на Codable.

Во вторую - разработчикам, унаследовавшим проект от другой команды. Часто легаси-код использует ObjectMapper потому что когда-то это был стандарт. Менять архитектуру риско - можно сломать существующий парсинг. json-mapper позволяет добавлять новые endpoints в старом стиле.

В третью - компаниям с большой кодовой базой, где миграция на Codable - проект на месяцы. Пока миграция не завершена, json-mapper закрывает потребность в новых моделях для существующего стека.

В четвёртую - разработчикам, которые предпочитают ObjectMapper по другим причинам. Несмотря на популярность Codable, ObjectMapper имеет некоторые преимущества: более гибкие transformation-функции, лучшая поддержка nested optional, более явное описание маппинга.

В пятую - студентам и преподавателям, изучающим эволюцию iOS-разработки. Понимать как делалось до Codable - полезный контекст. ObjectMapper был де-факто стандартом несколько лет, и его философия повлияла на дизайн самого Codable.

Ключевые возможности

Парсинг JSON

json-mapper парсит любой валидный JSON, определяет типы полей. Работает с input через текстовое поле или drag-and-drop файла.

Генерация ObjectMapper-классов

На выходе - готовый Swift-класс, наследуемый от Mappable, с метода init?(map:) и mapping(map:). Это стандартный шаблон ObjectMapper, который потом используется как:

let user = User(JSONString: jsonResponse)
// или
let user = Mapper<User>().map(JSONString: jsonResponse)

Snake_case ↔ camelCase mapping

Для каждого поля где имена в JSON и Swift отличаются, json-mapper автоматически добавляет правильный mapping:

name <- map["user_name"]
email <- map["email_address"]

Optional поля

Нуллы из JSON превращаются в Optional Swift-типы. ObjectMapper это поддерживает нативно через <- оператор.

Вложенные структуры

Nested objects превращаются во вложенные классы. Каждый класс - отдельный Mappable.

Native Swift приложение

Быстрая работа на любом Mac. Размер минимальный, расход памяти низкий.

Drag-and-drop

Можно перетащить JSON-файл из Finder в окно программы вместо копипасты текста.

Плюсы и минусы

Плюсы:

  • Бесплатно, open source.
  • Native Swift приложение - быстро.
  • Решает узкую но важную задачу для legacy-проектов.
  • Автоматический mapping snake/camel case.
  • Локальная работа без отправки JSON в облако.
  • Drag-and-drop поддержка.

Минусы:

  • Заброшен с 2016 года - 9 лет без обновлений на момент 2026.
  • Может не собираться на современном Xcode без правок.
  • Лицензия не указана (NOASSERTION).
  • Только ObjectMapper - не поддерживает Codable, GSON, Mantle.
  • Нет CLI-режима.
  • Маленькое сообщество (30 звёзд), не на чьё мнение опираться.
  • ObjectMapper в 2026 - устаревающий выбор. Для новых проектов лучше Codable.

Как установить и использовать

Скачайте json-mapper со страницы программы на mac-soft.ru. Ссылка ведёт на GitHub-репозиторий.

Пошаговая инструкция:

  1. Установите Xcode из Mac App Store (если не установлен)
  2. Склонируйте репозиторий: git clone https://github.com/AppCraft-LLC/json-mapper.git
  3. Откройте json-mapper.xcodeproj в Xcode
  4. Возможно, Xcode попросит обновить настройки проекта (Update to recommended settings) - согласитесь
  5. Возможно, потребуется поправить deployment target и Swift version в Project Settings - сделайте чтобы соответствовало вашему Xcode
  6. Нажмите Cmd+R для сборки

Если при сборке возникают ошибки (а с проектом 2016 года они вероятны), смотрите на конкретные сообщения. Обычно нужны минимальные правки - изменить синтаксис устаревших API на современный Swift.

Использование (после успешной сборки):

  1. Запустите json-mapper.app
  2. Скопируйте JSON в окно программы
  3. Введите имя класса
  4. Нажмите Generate - получите Swift-код ObjectMapper-класса
  5. Скопируйте код в свой проект
  6. Не забудьте добавить ObjectMapper как зависимость в Podfile или Package.swift вашего проекта

Альтернативы

Если json-mapper не подходит - есть варианты:

  • j2s (zadr/j2s) - похожий инструмент но генерирует Codable вместо ObjectMapper. Подходит для современных проектов. Активная разработка.
  • JSONExport (Ahmed-Ali/JSONExport) - бесплатная Mac-утилита, поддерживает много языков и frameworks (включая ObjectMapper).
  • JSONConverter (vvkeep/JSONConverter) - 950+ stars, более продвинутый аналог с поддержкой множества фреймворков.
  • quicktype.io (онлайн) - универсальный JSON-to-Code сервис.
  • CLI: ijoshsmith/json2swift - command-line вариант.

Для новых проектов в 2026 году рекомендуется уйти с ObjectMapper на Codable. Используйте j2s или JSONExport для генерации Codable-моделей. Это даст более производительный код, лучшую поддержку Xcode и одну зависимость меньше.

Итог

json-mapper - нишевый инструмент для определённой ситуации: поддержка legacy iOS-проектов на ObjectMapper. Если вы в этой ситуации - программа экономит время на boilerplate-коде. Если нет - используйте современные альтернативы под Codable.

Основные риски: проект 9 лет не обновляется и может не собираться на современном Xcode без правок. Готовьтесь потратить 30-60 минут на адаптацию кода. После этого инструмент работает стабильно для своей задачи.

Для проектов 2026+ года - переходите на j2s или JSONExport для Codable-моделей. ObjectMapper хороший фреймворк, но Apple-нативный Codable стал лучшим выбором для большинства случаев.

Скачать json-mapper для macOS можно на mac-soft.ru. Программа бесплатная, open source, требует Xcode для сборки.

Комментарии (0)

Пока нет комментариев.

Программы упомянутые в статье