JSONExport is a desktop application for Mac OS X written in Swift. Using JSONExport you will be able to:
- Convert any valid JSON object to a class of one of the currently supported languages.
- Preview the generated content before saving it.
- Include constructors only, utility methods only, both or none.
- Change the root class name.
- Set a class name prefix for the generated classes.
- Set package name for Java files.
Each generated file, besid the getters and setters (for Java) can include:
- A constructor wich accepts an instance of NSDictionary, JSON, JSONObject instance depending on the file language, and the class will use this object to fill its properties data.
- A utility method which converts the class data into a dictionary again.
Currently you can convert your JSON object to one of the following lanaguages:
- Java for Android - using org.json.* classes.
- Swift Classes - parses the JSON using built-in NSJSONSerialization.
- Swift Sturcutres - parses the JSON using built-in NSJSONSerialization.
- Swift Classes - parses the JSON using SwiftyJSON library
- Swift - CoreData - parses the JSON using built-in NSJSONSerialization
- Objective-C - iOS - parses the JSON using built-in NSJSONSerialization for iOS.
- Objective-C - MAC - parses the JSON using built-in NSJSONSerialization for MAC.
- Objective-C - CoreData - parses the JSON using built-in NSJSONSerialization
Screenshot shows JSONExport used for a snippet from Twitter timeline JSON and converting it to Swift-CoreData.
Kindly clone the project, build it using xCode 6.1+ on any Mac OS X 10.10 or above.
Support Objective-CDone- Sync multible classes with the same name (if a conflict happen)
- Accept JSON arrays
- Load JSON data from web
- Open .json files with JSONExport
- Supported languages management editor.
- When exporting to subclasses of NSManagedObject some data types can not be exported. For example core data does not have data type for "array of strings"; in turn, if your JSON contains an array of strings, the exported file will not compile without you fixing the type mismatch.
The application still in it early stages. Please report any issue so I can improve it.