JSON схема для цели C - генерация классов моделей - PullRequest
15 голосов
/ 13 марта 2011

Привет, люди переполняют стек

Я пишу приложение для iphone, которое подключается к веб-службе через REST с JSON.Я хотел бы сгенерировать мои классы моделей в цели c из схемы json, предоставленной моим веб-сервисом, немного похоже на id, сделанный для wsdl2objc с комбинацией asoap, xml и wsdl.

Похоже, что не так уж многотам на эту тему

я попробовал что-то под названием jsonschema2objc.rb из http://code.google.com/p/bkjsonschema/, но это дает мне ошибки даже в самой простой схеме json, найденной здесь: http://en.wikipedia.org/wiki/JSON#Schema

Я получаю эту ошибку:
Использование временного файла /var/folders/rN/rNw33pkyHVeNG+-IesdU+k+++TI/-Tmp-/jsonschema2objc.8WRkBSQo !!!Определение объекта по индексу У продукта неизвестный тип

, поэтому вот мои 2 вопроса:

  • знаете ли вы, ребята, какой-нибудь хороший инструмент для достижения jsonchema => объективных классов C?
  • Вы знаете, что означает эта ошибка в моем ./jsonschema2objc.rb

Thx!

Ответы [ 12 ]

12 голосов
/ 27 апреля 2012

В Mac Appstore был очень хороший инструмент под названием JSONModeler (сейчас он больше не выпускается), но те же самые ребята делают JSON Accelerator , который является развитием той же программы. Это действительно хорошо (и дешево), и он генерирует код Objective-C, Java и Python (JSONModeler также поддерживал классы и схему Coredata, хотя я не знаю, поддерживают ли они все еще в новой).

3 голосов
/ 02 июня 2011

Это не бесплатно, но, возможно, Objectify будет делать то, что вы хотите? Кажется, очень гладко.

3 голосов
/ 13 марта 2011

Я разработчик jsonschema2objc, он опирается на расширенный набор JSON-схем.То есть нам нужно было немного настроить схему JSON, чтобы добавить дополнительные свойства, которые определяют отображение между JSON и Obj-C.Например, вы можете указать другое имя свойства в JSON и сгенерированный класс Obj-C.Нам уже нужно было добавить понятие «преобразователи типов» и «преобразователи типов», которые необходимы сгенерированному коду синтаксического анализа, например, для преобразования необработанных строк в объекты дат (NSDate) или для разрешения фактического подкласса анализируемого объекта.Мы поддерживаем отношения «один ко многим», содержащие объекты, которые являются подклассами данного класса.Во время выполнения мы будем использовать дополнительные метаданные, предоставленные в схеме, чтобы выяснить, какой класс нужно создать.

Я понимаю, что мы поместили этот скрипт без каких-либо примеров схем, чтобы лучше понять, как его использовать.Я решу это в ближайшие несколько дней ...

Тем временем я рекомендую вам использовать пакет TextMate, который поставляется вместе с проектом.Мы поддерживаем десятки фрагментов TextMate, которые автоматизируют процесс создания допустимой схемы.

1 голос
/ 12 августа 2016

Существует инструмент под названием " JSON Class Generator ", который "генерирует исходный код Objective C из классов и перечислений, которые вы определили в этом редакторе".Также вы можете найти его в Mac App Store .

. Он НЕ имеет функции импорта для jsonschema, но генерирует довольно полные модели из того, что вы определили в графическом интерфейсе.

Может быть, это вариант для вас, чтобы повторно ввести все модели в редакторе.Если вы идете за библиотекой, у вас наверняка будет больше работы.Используя приложение, вы можете получить преимущества, которые вы хотите от генерации кода.(по моим личным причинам: меньше работы, меньше ошибок, меньше проверок во время выполнения, проще модификация, больше возможностей сгенерированного кода).

Приложение бесплатное.

Поскольку схема jsonне поддерживается напрямую: может быть возможность создать конвертер.Я проверил формат файла документа вышеупомянутого приложения.Это также JSON, и это выглядит прямо (похоже на схему json).Таким образом, конвертер может быть в определенной степени возможен.Но я боюсь, что проблема кроется в деталях - как это часто бывает - и что «я пишу конвертер за день» становится «я пишу конвертер, мне потребовалось 2 недели, и я все еще не закончил»».Это был бы крутой проект с открытым исходным кодом, чтобы начать ...

1 голос
/ 28 февраля 2016

Мне нравится использовать ESJsonFormat . Это позволяет мне вставить мой JSON в текстовое поле, и плагин создает классы.

E: начиная с xcode 8, плагины не «официально поддерживаются». Смотрите здесь

1 голос
/ 28 февраля 2016

Выезд Нидикс !Он имеет поддержку модели JSON Schema для Obj-C (в форме интерфейса командной строки, а не веб-сайта), может выдавать JSONModel соответствующих классов, и у него есть поддержка Swift и, возможно, скоро появится Java!

1 голос
/ 16 марта 2015

Вы можете попробовать json2objc . Один из моих друзей разработал это для себя, и после моих настаиваний он сделал это государственной службой. Это не коммерция.

1 голос
/ 27 апреля 2012

https://github.com/BrunoAlexandreMendesMartins/CleverModels

Учитывая определенный URL, CleverModels сделает запрос для вас и сгенерирует модели в соответствии с ответом JSON.

Это новый инструмент с открытым исходным кодом.

Целью является поддержка нескольких языков.

0 голосов
/ 02 января 2017

Вы можете использовать ссылку ниже:

Convertor Link - Эта утилита генерирует Swift 2.0 совместимые модели, которые можно просто перетащить и использовать в вашем проекте

0 голосов
/ 24 декабря 2016

Привет, вы можете использовать этот инструмент, чтобы получить json для объекта.

http://www.realmgenerator.eu/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...