Как я могу сохранить объекты JSON в Core Data?
==============================================

Я новичок в Core Data, я разработал приложение на основе навигации, и некоторые из данных, которые я использую, создаются во время выполнения (приходят с URL через JSON). Я изучил несколько учебных пособий, которые искали почти сутки, но до сих пор не понял, как сохранить входящие данные JSON в сущность (или событие?) В моей модели базовых данных. Я получаю данные в`DetailViewController` класс, и мне нужно сохранить эти данные в Core Data (я подготовил сущность с 7 свойствами). Кто-нибудь может помочь? (Если вы знаете хороший учебник или пример кода, я буду рад)

**РЕДАКТИРОВАТЬ** Это может быть немного конкретным, но у меня действительно есть проблемы и мне нужна небольшая помощь. Мои данные поступают в приложение с некоего спокойного сервера (я написал его на PHP), сначала пользователь вводит свою регистрационную информацию (которую я ранее сохранял в базе данных на сервере), а когда приходят данные ответа, я буду использовать разные элементы этого в разных точках зрения (например,`user_id` будет использоваться на виде и`buttonData` и тд на другие взгляды). Мой вопрос, как я буду сохранять данные JSON в моей основной модели данных (на данный момент имеет дерево сущностей). заранее спасибо

Примечание: я много любил, но не смог найти ответ и учебник о приложении, подобном моему

 соответствующие структуре JSON. Проще всего было, когда каждый объект JSON становится сущностью, а массивы становятся массивами сущностей. Однако будьте разумны и не вводите слишком много избыточного для подобъектов JSON, которые по существу являются частью его суперобъекта.

Создав сущности, вы можете начать с разбора и перевода. Используйте некоторую инфраструктуру JSON (начиная с iOS5, там есть Apple) и проанализируйте строку JSON в дереве объектов, где корневым элементом является NSArray или NSDictionary, а подэлементами будут NSArray, NSDictionary, NSNumber, NSString или NSNull.

Перебирайте их один за другим в итерационных циклах и присвойте соответствующие значения вашим основным атрибутам сущности данных. Вы можете использовать NSKeyValueCoding здесь и избежать слишком большого ручного отображения имен атрибутов. Если ваши атрибуты JSON имеют то же имя, что и атрибуты сущностей, вы сможете просто просмотреть все элементы словаря и разобрать их в атрибуты с тем же именем.

примерМой код разбора в аналогичной ситуации был следующим:

Этот код будет работать в тривиальной ситуации, однако его может потребоваться расширить в зависимости от ваших потребностей:

С некоторыми видами пользовательских отображений на случай, если вы хотите, чтобы ваше значение JSON было помещено в атрибут с другим именем.Если ваш JSON имеет подобъекты или массивы подобъектов, вам нужно будет обнаружить эти случаи, например, в установщиках, и инициировать новый анализ на один уровень глубже. В противном случае с моим примером вы столкнетесь с ситуацией, когда объект NSDictionary назначается объекту NSManagedObject.Я не думаю, что было бы разумно углубляться в эти, более сложные вопросы, связанные с этим ответом, поскольку это слишком расширит его.



<https://github.com/TouchCode/TouchJSON> И затем, если вы хотите создать фабрику для анализа json и подачи данных кода, вы можете использовать селекторы для вызова методов, чтобы заполнить все ваши атрибуты.



 ваши данные JSON преобразуются в NSDictionary или NSArray (или некоторую комбинацию двух). Просто извлеките ключ / значения из структуры JSON и добавьте их в свой класс сущностей.



[Этот](https://github.com/gonzalezreal/Groot) lib мне очень помогает

Сопоставление атрибутов и отношений с путями ключей JSON.

Преобразование значений с использованием именованных объектов NSValueTransformer.

Сохранение графов объектов.

Поддержка наследования сущностей

Работает наоборот