开发笔记两则
2015-11-29 10:38
218 查看
笔记一:用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。
欢迎扫码关注我的微信公众号
君子爱财取之有道
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。
欢迎扫码关注我的微信公众号
君子爱财取之有道
相关文章推荐
- Access中创建子数据表/主子数据表
- 解决windows的控制台显示utf8乱码的问题
- 开源分布式搜索平台ELK+REDIS+SYSLOG-NG实现日志实时搜索(转载)
- Windows7下Git常用命令(1)
- Android之系统Log输出日志的封装类LogUtil
- BZOJ 1855: [Scoi2010]股票交易:(单调队列优化DP)
- mmap
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间
- [Nodejs入门]第四篇,用nodejs实现一个爬虫的功能
- 趣学Python-教孩子学编程--第六章
- 运行时的最常见的三种用法
- Web后台开发之CRUD操作的两种实现
- Eclipse在ubuntu下配置server的问题及解决方案
- object-c之UItableView下拉刷新
- object-c之UItableView下拉刷新
- OpenJudge_P1249 Humble Numbers(堆)
- HeadFirst_Java读书笔记
- BigInteger的使用总结
- (Swift报错提示)dataWithContentsOfURL
- IDEA15 idea64.exe.vmoptions optimization