json教程系列(5)-json错误解析
2015-09-06 10:47
501 查看
在平常的开发中,我们经常会遇到JSONObject和Bean的互换,JSONArray和List<Bean>的互换,具体的操作可以看下面的小例子。
public class Test
{
public static void main(String args[])
{
User temp = new User();
temp.setUsername("root");
temp.setPassword("root");
//JSONObject转换为bean的两种方法:
JSONObject json = JSONObject.fromObject(temp);
User user1 = (User) JSONObject.toBean(json, User.class);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(User.class);
User user2 = (User) JSONSerializer.toJava(json, jsonConfig);
//JSONArray转换为List<bean>的两种方法:
JSONArray userArray = JSONArray.fromObject("[" + json.toString() + "]");
List<User> userList1 = (List<User>) JSONArray.toCollection(userArray, User.class);
List<User> userList2 = (List<User>) JSONSerializer.toJava(userArray, jsonConfig);
}
}需要注意的是:
User user = (User) JSONObject.toBean(json);
这种写法是会报错的:
Exception in thread "main" java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean
cannot be cast to User
原因如下所示:
toBean(JSONObject jsonObject, Class beanClass)的含义是:
Creates a bean from a JSONObject, with a specific target class.
toBean(JSONObject jsonObject)的含义是:
Creates a JSONDynaBean from a JSONObject.
public class Test
{
public static void main(String args[])
{
User temp = new User();
temp.setUsername("root");
temp.setPassword("root");
//JSONObject转换为bean的两种方法:
JSONObject json = JSONObject.fromObject(temp);
User user1 = (User) JSONObject.toBean(json, User.class);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(User.class);
User user2 = (User) JSONSerializer.toJava(json, jsonConfig);
//JSONArray转换为List<bean>的两种方法:
JSONArray userArray = JSONArray.fromObject("[" + json.toString() + "]");
List<User> userList1 = (List<User>) JSONArray.toCollection(userArray, User.class);
List<User> userList2 = (List<User>) JSONSerializer.toJava(userArray, jsonConfig);
}
}需要注意的是:
User user = (User) JSONObject.toBean(json);
这种写法是会报错的:
Exception in thread "main" java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean
cannot be cast to User
原因如下所示:
toBean(JSONObject jsonObject, Class beanClass)的含义是:
Creates a bean from a JSONObject, with a specific target class.
toBean(JSONObject jsonObject)的含义是:
Creates a JSONDynaBean from a JSONObject.
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统