json教程系列(5)-json错误解析

来源:互联网 发布:淘宝举报重复铺货 编辑:程序博客网 时间:2024/05/16 09:10

在平常的开发中,我们经常会遇到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.

0 0
原创粉丝点击