json教程系列(5)-json错误解析net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    xiaoxiao2021-03-25  125

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

    转载请注明原文地址: https://ju.6miu.com/read-26231.html

    最新回复(0)