簡體   English   中英

如何將json String轉換為java對象

[英]How to convert json String to java object

從jsp到ajax cal我將json字符串傳遞給服務器,我正在轉換為json對象。 如何將jsonobject轉換為java中的模型類對象?

在服務器中我這樣做:

 HttpServletRequest request = ServletActionContext.getRequest();
 String jsonData = request.getParameter("JsonData");
 JSONObject jsonDataObject = (JSONObject) JSONSerializer.toJSON( jsonData );

我的模型類看起來像這樣:

   public class Vehicles {

private List<Vehicle> vehicle;

public List<Vehicle> getVehicle() {
    return vehicle;
}

public void setVehicle(List<Vehicle> vehicle) {
    this.vehicle= vehicle;
}

    }

  public class Vehicle{
    private Integer vId;
   private String VName;
    private List<Department> department;
   //getters and setters;
    }

  public class Department{
    private Integer depId;
private String departmentName;
private List<Item> item;
   //getters and setters
   }

  public class Item{
  private Integer itemId;
  private String itemName;
  //getters and setters
   }

我得到jsonData字符串為

{"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"}]}]}

如何將JSONObject jsonDataObject(或String jsonData)轉換為java中的模型類對象(即車輛)?

用這個..

  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();
}

對於轉換(String jsonData),我更喜歡Gson

就像是,

 Gson gsonObj = new Gson();
 Vehicles vehicles = gsonObj.fromJson(jsonData, Vehicles.class);
 iterate through this list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM