天天看點

JSONObject基本内容(一)

參考資料:http://swiftlet.net/archives/category/json,十分感謝~

平時做項目,難免有遇到使用json對象的時候,這個東西不難,但是一不使用久了,就會忘記,是以把它的基本用法寫一下。

前提: 導入相關的jar檔案:

commons-lang-1.0.4.jar 

commons-collections-2.1.jar 

commons-beanutils-1.8.0.jar 

json-lib-2.4.jar 

ezmorph-1.0.6.jar 

commons-logging-1.1.jar

然後就可以開發啦~

一)javaBean轉換為json

  (1)先寫一個javaBean

  

public class User  implements Serializable{
    private static final long serialVersionUID = 1L;
    
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }    
}      

然後就把這個javaBean轉換為JSONObject:

public static void main(String[] args) {
        //javaBean對象轉換為json字元串
        User user = new User();
        user.setUsername("Rime");
        user.setPassword("1234");
        JSONObject json1 = JSONObject.fromObject(user);
        System.out.println(json1.toString());
        
        //map轉換為json字元串
        HashMap<Object,Object> userMap = new HashMap<Object,Object>();
        userMap.put("username", "Rime");
        userMap.put("password", "1234");
        JSONObject json2 = JSONObject.fromObject(userMap);
        System.out.println(json2.toString());
    }      

輸出的内容如下:

{"password":"1234","username":"Rime"}

{"username":"Rime","password":"1234"}

看到這裡,你可能會有疑問,是不是什麼對象都能夠轉換為JSONObject呢?答案當然是:不。

JSONObject.fromObject(Object object)方法隻對以下集中類型的對象有效:JSON formatted strings,Maps,DynaBeans and JavaBeans。

【注意】DynaBeans是commons-beanutils定義的動态bean。DynaBean并不是Java中所定義的Bean,而是一種"假"的Bean。因為它并不是通過getXXX和setXXX方法,對XXX屬性進行取值和設值的。

如果object是其他類型的參數呢?比如說數字,邏輯值,非json格式的字元串,那麼将生産空的JSONObject對象。

學習之是以會想睡覺,是因為那是夢開始的地方。