筆記一:用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。
歡迎掃碼關注我的微信公衆號
君子愛財取之有道