開發筆記兩則

筆記一:用Json-lib轉換複雜對象的注意事項

Json-lib是Java下常用的Json轉換包,通常情況下,我們這樣轉換Json字符串到Java對象:
   /* Person是這樣定義的
    * public class Person {
    *   private String name;
        *   private int sex;
        *   ...
        * }
       */

   JSONObject jsonObj = JSONObject.fromObject(jsonStr);
   Person person = (Person) JSONObject.toBean(jsonObj, Person.class);

在Person的成員都是基本數據類型和String類型時,這樣轉換沒問題。如果Person中包含List、Array、自定義類型的成員時,轉換就會出錯了,例如,如果Person類這樣定義:

   public class Person {
     private String name;
     private int sex;
     private List<String> experience;
     ...
   }

這時應該像下面這樣處理:

   Map<String, Class> classMap = new HashMap<String, Class>();
   classMap.put("experience", List.class);    

   JSONObject jsonObj = JSONObject.fromObject(jsonStr);
   Person person = (Person) JSONObject.toBean(jsonObj, Person.class, classMap);

筆記二:用HttpClient獲取的Http響應中如何避免中文亂碼。
在調用EntityUtils.toString方法獲得響應字符串時加上編碼參數,如下:

   HttpEntity entity = response.getEntity();
   return entity != null ? EntityUtils.toString(entity, "UTF-8") : null;

"UTF-8"是響應頁面的編碼,如果頁面編碼是GBK這裏就該相應的換成GBK。



歡迎掃碼關注我的微信公衆號


junior9919


君子愛財取之有道


發佈了27 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章