THIS REPOSITORY IS NO LONGER MAINTAINED.
ModelMapper is an Android library to help parsing JSON strings and mapping it to objects of model classes automatically.
This is your json.
{
"name": "Eunjae Lee",
"noshow": false,
"albuminfo": {
"count": 10
}
}
This is your model.
class User {
String name;
@JsonProperty("noshow")
boolean noShow;
@JsonProperty("albuminfo.count")
int albumCount;
}
And all you need to do is:
User user = ModelMapper.getInstance().generate(User.class, jsonString);
And if you're using AndroidAnnotations, it gets simpler. You just need to put an converter at rest client interface.
@Rest(converters = {JsonToModelConverter.class})
public interface MyRestClient {
@Get("/...")
User getUser();
}
It's done.
<dependency>
<groupId>net.eunjae.android.modelmapper</groupId>
<artifactId>ModelMapper</artifactId>
<version>1.0.6</version>
</dependency>
compile 'net.eunjae.android.modelmapper:ModelMapper:1.0.6'
Check out the wiki page: https://github.com/eunjae-lee/ModelMapper/wiki
- OnBeforeMapping has changed a little bit.
- A field with "HashMap" type is now mapped well.
- Null check
- Bugs are fixed when it can't parse json strings with unusual structure.
- Test cases are added.
- Now ModelMapper just returns json string if the first argument of ModelMapper.getInstance().generate(...) is String.class. ** There was a bug that it returned an empty string in that case.
- Now this library throws exceptions when callback method(@AfterMapping) is not declared properly.
- Minor bug fix that couldn't recognize array class when it is not directly extending ArrayList.