How to convert json String to java object
java, json
Solution
use this..
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONException;
import org.json.JSONObject;
HttpServletRequest request = ServletActionContext.getRequest();
Vehicles vehicles;
String jsonData = request.getParameter("JsonData");
jsonData = jsonData.substring(13, jsonData.length()-2);
ObjectMapper mapper = new ObjectMapper();
try{
vehicles= mapper.readValue(jsonData, Vehicles.class);
}
catch (Exception e) {
e.printStackTrace();
}
Problem
From jsp through ajax cal I'm passing json string to server and I am converting to json object. How can I convert the jsonobject to a model class object in java? In server I'm doing this: ``` HttpServletRequest request = ServletActionContext.getRequest(); String jsonData = request.getParameter("JsonData"); JSONObject jsonDataObject = (JSONObject) JSONSerializer.toJSON( jsonData ); ``` My model classes looks like this: ``` public class Vehicles { private List<Vehicle> vehicle; public List<Vehicle> getVehicle() { return vehicle; } public void setVehicle(List<Vehicle> vehicle) { this.vehicle= vehicle; } } ``` And ``` public class Vehicle{ private Integer vId; private String VName; private List<Department> department; //getters and setters; } ``` and ``` public class Department{ private Integer depId; private String departmentName; private List<Item> item; //getters and setters } ``` and ``` public class Item{ private Integer itemId; private String itemName; //getters and setters } ``` and I am getting jsonData String as ``` {"vehicles":[{"vehicle":[{"department":[{"Item":[{"itemId":31,"itemName":"c7"},{"itemId":32,"itemName":"c2"}],"depId":21,"departmentName":"d1"}],"vId":11,"VName":"aaa"},{"department":[{"Item":[{"itemId":33,"itemName":"c3"},{"itemId":34,"itemName":"c4"}],"depId":22,"departmentName":"d2"},{"Item":[{"itemId":36,"itemName":"c1"}],"depId":24,"departmentName":"d3"}],"vId":12,"VName":"bbbb"},{"department":[{"Item":[{"itemId":30,"itemName":"c6"},{"itemId":35,"itemName":"c5"}],"depId":23,"departmentName":"d4"}],"vId":13,"VName":"cccc"},{"department":[{"Item":[{"itemid":37,"itemName":"c8","status":0}],"depId":25,"departmentName":"d5"}],"vId":14,"VName":"ddd"}]}]} ``` How can I convert JSONObject jsonDataObject ( or String jsonData) to model class object(ie vehicles) in java?