Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Morpheus

Download Build Status

Morpheus is a JSONAPI deserializer for android that uses java reflection. You can define your own java classes to deserialize.

Take a look at the documentation.

Install

compile 'com.xamoom.android:morpheus:0.5.2'

Usage

Prepare your resources

  1. extend Resource
  2. Use @SerializedName() annotation when your field name differs from the json.
  3. Create relationship mapping with the @Relationship() annotation.
public class Article extends Resource {
  @SerializedName("article-title")
  private String title;
  @Relationship("author")
  private Author author;
  @Relationship("comments")
  private List<Comment> comments;
}

Deserialize

  1. Create a Morpheus instance
  2. Register your resources
  3. parse your JSON string
Morpheus morpheus = new Morpheus();
//register your resources
Deserializer.registerResourceClass("articles", Article.class);
Deserializer.registerResourceClass("people", Author.class);
Deserializer.registerResourceClass("comments", Comment.class);
JsonApiObject jsonApiObject =
        morpheus.parse(loadJSONFromAsset(R.raw.articles));

Article article = (Article)jsonApiObject.getResources().get(0);
Log.v(TAG, "Article Id: " + article.getId())

Serialize

Morpheus morpheus = new Morpheus();
Deserializer.registerResourceClass("products", Product.class);

JsonApiObject jsonApiObject = new JsonApiObject();
jsonApiObject.setResource(product);

String json = morpheus.createJson(jsonApiObject, false);

Delete an relationship:

article.addRelationshipToNull("author");

JsonApiObject jsonApiObject = new JsonApiObject();
jsonApiObject.setResource(article);

String articleJson = morpheus.createJson(jsonApiObject, false);

Development status

Morpheus can:

  • deserialize data object or array
  • deserialize relationships
  • map includes to relationships
  • deserialize links, meta, errors
  • serialize resources with their relationships and includes

Data Attribute Mapping

At the moment Morpheus maps

  • Strings -> String
  • Floats -> double
  • Booleans -> boolean
  • JSONArrays -> List<Object> (with Gson)
  • JSONObject -> HashMap<String, Object> (with Gson)

You can write your own AttributeMapper by extending AttributeMapper.java and initialize Morpheus with your mapper.

Contribution

If you want to contribute: make your changes and do a pull request.

About

JSONAPI Implementation for Android

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.