簡體   English   中英

使用org.json包將JSON對象轉換為Java bean

[英]Convert JSON object to Java bean using org.json package

我有Java bean類,例如:

public class User  implements Serializable{
    protected String Name        = null;
    protected String Password    = null;
    // ...
}  

我可以輕松地將其轉換為org.json對象

User u = new User();
u.setName("AAA");
u.setPassword("123");
JSONObject jo = new JSONObject(u);

是否可以將JSONObject轉換為Java bean類?

現有一個實現反射方法以將JSON對象轉換為Java bean的庫,稱為Gson

使用它,您可以將JSON文本(在代碼中調用jo.toString()的結果)轉換回User類型:

User user = new Gson().fromJson(jSONObjectAsString, User.class);

該庫還實現了toJson()方法,因此對於所有情況,您應該有可能用Gson替換對json.org實現的使用。

沒有使用json.org庫的內置方法。

根據您的需求,您可以

  1. 為每個bean編寫一個fromJSONObject()方法,該方法使用JSONObject#has()JSONObject#get*()來獲取所需的值並處理任何類型問題。
  2. 編寫一個全局方法,該方法使用JSONObject#names()和反射來用JSONObject中的數據填充bean實例。 這並不困難,但是如果您需要將其與幾個Bean類一起使用,則可能會很繁重。
public static Object toBean(JSONObject jobject, Object object) {
    for (Field field : object.getClass.getDeclaredFields()) {
        field.set(object, jobject.getString(field.getName()));
    }
}

Call:

User user = (User) toBean(jo, new User());

暫無
暫無

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

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