Each of the libraries you mentioned has different goals:
MagicalRecord - simplifies general operations with master data (fetch, insert, delete, stack setup, etc.). It does not handle JSON mapping or any other format for Core Data models. Correction thanks to @casademora: MagicalRecord can handle imports using custom mappings using the steps described. However, MagicalRecord is a fairly large library, used only for this part of the functionality.
Mantle - significantly reduces the pattern for model objects in Objective-C (automatic implementations of NSCoding , NSCopying , -isEqual: / -hash , etc.). Includes adapters such as MTLJSONAdapter and MTLManagedObjectAdapter for converting between views of obejcts models. It sounds like itโs best for what you are trying to achieve. If you implement the MTLJSONSerializing and MTLManagedObjectSerializing in your MTLModel subclass, you can turn NSDictionary responses from web APIs (supposedly JSON data) into Core Data model objects.
Easy mapping . I have not used this library myself, but it seems that it provides a small set of Mantle functions exclusively for converting between different representations of the model, except that it uses matching models ( EKObjectMapping ) instead of subclassing the base class of the model. The disadvantages of using this library are that it does not process any of the other Objective-C model object templates for you, as the Mantle does.
Of the 3 libraries mentioned, I think the Mantle will probably be the best fit for what you described. Another option is to use RestKit , which provides tighter REST API / Core Data integration than any of these libraries, but it is much more difficult to use debugging.
source share