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/
No comments:
Post a Comment