您的位置:首页 > Web前端 > JavaScript

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java json