public class Account {
String accountNo;
String bankName;
// getters and setters here!
}
public class UserInfo {
String userID;
String userName;
String birthday;
Account bankInfo;
List<String> favoriteMovies;
// getters and setters here!
}
Suppose you receive the following string from a server as response to some request:{
"accountNo" : "11833",
"bankName" : "SopBank"
}
And you want to map this string a an already existing bean. First, we have to create a JSONObject from this string with the following line:JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(receivedJsonString);Now we can map it to an account bean using JSONObject's toBean method:
Account newAccount = (Account) JSONObject.toBean(jsonObject,Account.class);Now newAccount object will be:
Now we will map a class that has some other class types in it (other than primitives). Suppose you received the following json formatted string:
{
"userID" : "HBSS234HSB",
"userName" : "Cem Yilmaz",
"birthday" : "01/01/1986",
"bankInfo" : {
"accountNo" : "11833",
"bankName" : "SopBank"
},
"favoriteMovies" : [
"Eternal Sunshine",
"Fight Club",
"Av Mevsimi"
]
}
Again we will create a JSONObject from this string:JSONObject jsonObject2 = (JSONObject) JSONSerializer.toJSON(receivedJsonString);This time we will introduce the non-primitive attributes of the UserInfo class to toBean method with a class map. This class map consists of attribute names and corresponding classes:
Map<String, Class> itemMap = new HashMap<String, Class>();
itemMap.put("bankInfo",Account.class);
Now we can create a UserInfo instance:UserInfo userInfo = (UserInfo) JSONObject.toBean(jsonObject2,UserInfo.class,itemMap);Now userInfo object will be:
Ref: http://json-lib.sourceforge.net/

