栏目:Json与Bean 作者:admin 日期:2015-05-21 评论:1 点击: 15,234 次
本文标签: MorphDynaBean
关于Java开发过程中遇到的问题,欢迎加群讨论,本群有良好的学习氛围,任何问题都能得到有效的解答:
在平常的开发中,我们经常会遇到JSONObject和Bean的互换,JSONArray和List<Bean>的互换,具体的操作可以看下面的小例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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.
(本文于2015年7月20日修订)
------====== 本站公告 ======------
金丝燕网,一个严谨的网站!