Что это
j2s - это бесплатная нативная утилита для macOS, которая решает рутинную задачу iOS/macOS-разработчиков: превращает JSON-объекты в Swift-структуры с поддержкой Codable. Получили ответ от REST API в виде JSON - вставили в j2s - получили готовый код Swift-модели. Сэкономили 10-30 минут ручной типизации полей.
Программа написана на Swift нативно, разработка идёт с 2017 года, последнее обновление - январь 2026. 230+ звёзд на GitHub. Простой минималистичный интерфейс: окно с двумя областями - входной JSON слева, сгенерированный Swift-код справа.
Важный момент: j2s распространяется как исходный код на GitHub без готового DMG. Чтобы использовать программу, нужно склонировать репозиторий и собрать .app в Xcode (Cmd+R в проекте, потом извлечь собранный .app из DerivedData). Это не проблема для iOS-разработчиков - целевой аудитории - потому что Xcode и так установлен.
Уникальное преимущество j2s перед онлайн-сервисами типа quicktype.io - всё работает локально. Если у вас приватный API с секретными данными, JSON не попадает на чужие серверы. Особенно важно для финтеха, медтеха, банковской разработки.
Кому подойдёт
В первую очередь - iOS/macOS-разработчикам, работающим с REST API на Swift. Каждый раз когда вы интегрируете новый endpoint, нужно описать модель ответа в Swift-коде. j2s делает это в один клик вместо 15-минутной ручной работы.
Во вторую - разработчикам командной работы с backend-ом. Когда backend-инженер пришёл с примером JSON-ответа на новый endpoint - сразу прогнать через j2s, добавить полученный struct в проект, использовать в коде через несколько секунд. Никаких ошибок при ручном переписывании.
В третью - студентам, изучающим Swift и URLSession. Понимать что такое Codable - один из ключевых навыков современного iOS-разработчика. j2s даёт песочницу для экспериментов: меняешь JSON, видишь как меняется генерируемый код.
В четвёртую - разработчикам, мигрирующим с Objective-C на Swift. Старые приложения часто используют ручной парсинг JSON через NSDictionary. j2s даёт быстрый способ переписать модели на современный Swift Codable.
В пятую - freelancer-разработчикам, работающим на нескольких проектах. Чем меньше времени на boilerplate-код, тем больше остаётся на интересные задачи.
Ключевые возможности
Парсинг любого JSON
Вставляете JSON в окно программы - j2s автоматически парсит его и определяет типы полей. Поддерживает все стандартные JSON-типы: String, Number (Int/Double), Boolean, Array, Object, null.
Codable conformance автоматически
Генерируемые struct автоматически conformant к Codable - значит можно использовать их напрямую с JSONEncoder и JSONDecoder. Никакого ручного описания init(from:) и encode(to:).
Snake_case ↔ camelCase mapping
REST API обычно использует snakecase в именах полей (username, createdat, emailverified). Swift-конвенция требует camelCase (userName, createdAt, emailVerified). j2s автоматически добавляет CodingKeys enum в struct, который описывает соответствие:
struct User: Codable {
let userName: String
let createdAt: String
let emailVerified: Bool
enum CodingKeys: String, CodingKey {
case userName = "user_name"
case createdAt = "created_at"
case emailVerified = "email_verified"
}
}
Optional поля для nil значений
Если в JSON значение null или поле может отсутствовать в ответе - j2s делает Optional. Это критично для безопасной декодиации: без Optional декодер выдаст ошибку при отсутствии поля.
Вложенные структуры
Nested JSON-объекты превращаются во вложенные Swift-структуры с правильными именами:
{
"user": {
"profile": {
"avatar_url": "https://..."
}
}
}
Порождает:
struct Response: Codable {
let user: User
}
struct User: Codable {
let profile: Profile
}
struct Profile: Codable {
let avatarUrl: String
enum CodingKeys: String, CodingKey {
case avatarUrl = "avatar_url"
}
}
Массивы
Arrays JSON-объектов автоматически становятся [Type] в Swift. Если в массиве разнородные данные - j2s корректно обрабатывает.
Локальная работа, приватность
В отличие от онлайн-сервисов типа quicktype.io, j2s работает на вашем Mac. JSON не отправляется ни на какие серверы. Можно использовать с приватными API без рисков утечки данных.
Плюсы и минусы
Плюсы:
- Полностью бесплатно, open source.
- Native Swift - быстрая работа.
- Активно развивается с 2017 года.
- Локальная работа без отправки данных в облако.
- Автоматический CodingKeys mapping snake_case → camelCase.
- Поддержка Optional, вложенных структур, массивов.
- Не требует подключения к интернету.
Минусы:
- Нет готового DMG - нужно собрать самостоятельно через Xcode.
- Лицензия не указана явно (NOASSERTION) - юридически непрозрачно для коммерческого использования.
- Не поддерживает другие языки (только Swift).
- Нет CLI-режима для интеграции в скрипты.
- Не поддерживает разные мepping-фреймворки (только Codable).
- Нет валидации сгенерированного кода - если в JSON есть проблемы (например, поле "class" - зарезервированное слово в Swift), нужно править руками.
Как установить и использовать
Скачайте j2s со страницы программы на mac-soft.ru. Ссылка ведёт на GitHub-репозиторий с исходниками.
Поскольку готового DMG нет, нужно собрать программу самостоятельно. Это требует Xcode (бесплатно из Mac App Store).
Пошаговая инструкция:
- Установите Xcode из Mac App Store (если ещё не установлен)
- Склонируйте репозиторий:
git clone https://github.com/zadr/j2s.git - Откройте
j2s/j2s.xcodeprojв Xcode - Нажмите Cmd+R для сборки и запуска
- j2s.app откроется автоматически
Для постоянного использования можно скопировать собранный .app в Applications:
- В Xcode откройте Window → Organizer → Archive (если нужна релизная сборка)
- Или просто найдите собранный .app в DerivedData:
~/Library/Developer/Xcode/DerivedData/j2s-*/Build/Products/Debug/j2s.app - Скопируйте в /Applications
Использование:
- Запустите j2s
- Скопируйте JSON из API-документации или ответа REST-запроса
- Вставьте в левую панель программы
- Программа автоматически сгенерирует Swift-код в правой панели
- Скопируйте код в свой Xcode-проект
Для чувствительных к качеству проектов - проверьте сгенерированный код. j2s обычно работает корректно, но иногда нужны мелкие правки (например, переименование полей с зарезервированными именами).
Альтернативы
Если j2s не подходит - есть варианты:
- quicktype.io (онлайн) - самый популярный JSON to Code сервис. Поддерживает много языков, но требует загрузки JSON в облако (не подходит для приватных данных).
- JSONExport (Ahmed-Ali/JSONExport) - другая бесплатная Mac-утилита, поддерживает много языков и frameworks. Тоже source-only.
- json-mapper (AppCraft-LLC) - похожий инструмент для генерации Swift ObjectMapper моделей.
- JSONConverter (vvkeep/JSONConverter) - 950+ stars, более продвинутый аналог.
- SwiftyJSONAccelerator (insanoid/SwiftyJSONAccelerator) - 940+ stars, поддерживает Swift 5 и Codable.
- CLI: ijoshsmith/json2swift - command-line вариант для интеграции в скрипты.
Если нужна простота и локальная работа - j2s выбор. Для большего количества опций - JSONConverter или JSONExport.
Итог
j2s - простой, быстрый, локальный инструмент для iOS/macOS-разработчиков, регулярно работающих с REST API. Не самый популярный в нише (есть JSONExport с 4800 звёздами), но отличается простотой и фокусом на одной задаче - JSON в Swift Codable.
Главный недостаток - source-only распространение требует одного раза собрать через Xcode. Но это десять минут работы, а пользоваться программой можно годами.
Для разработчиков с приватными API и серьёзными требованиями к security - j2s выгоден тем что работает оффлайн, без отправки JSON в облако. Никаких рисков утечки токенов или sensitive-данных.
Скачать j2s для macOS можно на mac-soft.ru. Программа бесплатная, open source, требует Xcode для сборки.
Комментарии (0)