JSON字串轉javabean,MorphDynaBean cannot be cast to ……
在json字串轉java bean時,一般的物件,可以直接轉,如:一個學生類,屬性有姓名、年齡等
Java程式碼- public class Student implements java.io.Serializable{
- /**
- * @Fields serialVersionUID : TODO
- */
- private static final long serialVersionUID = -1943961352036134112L;
- private String sname;
-
private Integer age;
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
由字串轉java bean時可以使用以下方法:
- JSONObject jobj = JSONObject.fromObject(str);
- Student s = (Student) JSONObject.tobean(jobj,Student.class);
是沒有問題的,但是如果屬性中含有複雜的型別,當其中屬性有類似List , Map ,ArrayList、自定義的型別,如List<Teacher> teachers, 就不可以了。 會報錯:MorphDynaBean cannot be cast to con.test……
在JSONObject.toBean的時候如果轉換的類中有集合,可以先定義Map<String, Class> classMap = new HashMap<String, Class>();在classMap中put你要轉換的類中的集合名,像:classMap.put("teachers", Teacher.class);然後在toBean()的時候把引數加上, 像:Student student=(Student) JSONObject.toBean(str, Student.class, classMap);
比如我定義瞭如下型別:
Java程式碼- import java.util.List;
- /**
- *
- * <P>Tiltle: AnalysisModel.java </P>
- * <P>Description:模型類 </P>
- * @author biyutong
- * @date Jun 11, 2012 9:37:54 AM
- * @version:V1.0
- */
- public class AnalysisModel implements java.io.Serializable{
- /**
- * 固定條件
- */
- private List<Condition> regularCondtionList;//
- /**
- * 動態條件
- */
- private List<ConditionField> dynamicConFieldList;
- /**
- * 結果
- */
- private List<ResultField> resultField;
- /**
- * 獲取前多少條資料
- */
- private Integer topnum;
- /**
- * 順序還是隨機
- */
- private String sortFlag;
- /**
- * 備註
- */
- private String remark;
- /**
- * 模型名稱
- */
- private String modelName;
- /**
- * 對應的xml檔名稱
- */
- private String fileName;
- public List<Condition> getRegularCondtionList() {
- return regularCondtionList;
- }
- public void setRegularCondtionList(List<Condition> regularCondtionList) {
- this.regularCondtionList = regularCondtionList;
- }
- public List<ConditionField> getDynamicConFieldList() {
- return dynamicConFieldList;
- }
- public void setDynamicConFieldList(List<ConditionField> dynamicConFieldList) {
- this.dynamicConFieldList = dynamicConFieldList;
- }
- public Integer getTopnum() {
- return topnum;
- }
- public void setTopnum(Integer topnum) {
- this.topnum = topnum;
- }
- public String getSortFlag() {
- return sortFlag;
- }
- public void setSortFlag(String sortFlag) {
- this.sortFlag = sortFlag;
- }
- public String getRemark() {
- return remark;
- }
- public void setRemark(String remark) {
- this.remark = remark;
- }
- public String getModelName() {
- return modelName;
- }
- public void setModelName(String modelName) {
- this.modelName = modelName;
- }
- public List<ResultField> getResultField() {
- return resultField;
- }
- public void setResultField(List<ResultField> resultField) {
- this.resultField = resultField;
- }
- public String getFileName() {
- return fileName;
- }
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- }
在轉化的時候需要這樣來寫:
Java程式碼- Map<String, Class> classMap = new HashMap<String, Class>();
- classMap.put("regularCondtionList", Condition.class);
- classMap.put("dynamicConFieldList", ConditionField.class);
- classMap.put("resultField", ResultField.class);
- AnalysisModel analysisModel=(AnalysisModel) JSONObject.toBean(str, AnalysisModel.class, classMap);
相關推薦
JSON字串轉javabean,MorphDynaBean cannot be cast to ……
在json字串轉java bean時,一般的物件,可以直接轉,如:一個學生類,屬性有姓名、年齡等 Java程式碼 public class Student implements java.io.Serializable{ /** *
JSON字串轉javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map
會報錯:MorphDynaBean cannot be cast to java.util.Map 在JSONObject.toBean的時候如果轉換的類中有集合,可以先定義Map<String, Class> classMap = new Hash
java後臺接收json資料,報錯com.alibaba.fastjson.JSONObject cannot be cast to xxx
從前臺接收json封裝的list資料,在後臺接收時一直報錯,com.alibaba.fastjson.JSONObject cannot be cast to xxx, 使用這種方式接收可以接收 1 @RequestMapping(value = "/insertUser", method
java.lang.Integer cannot be cast to java.lang.String Java int,double向String的轉化和String向int,double的轉換
count=Integer.parseInt( (String)all.get(0)); 執行時報錯:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 解決方
解決kylin報錯 ClassCastException org.apache.hadoop.hive.ql.exec.ConditionalTask cannot be cast to org.apache.hadoop.hive.ql.exec.mr.MapRedTask
conf lan exe hive oop ann 關於 .exe map 方法:去掉參數SET hive.auto.convert.join=true; 從配置文件$KYLIN_HOME/conf/kylin_hive_conf.xml刪掉 或 kylin-gui的cu
“無效數字” ;java.lang.Integer cannot be cast to java.lang.String
現在 類型 bsp 字段 ann 不難 esc ger ring 今天頁面上突然查詢不出數據,大致的sql語句是 select xx ,xxx from table a where a.lrmb in ( 6101060033, 6101
org.slf4j.impl.Log4jLoggerAdapter cannot be cast to ch.qos.logback.classic.Logger
sock sso ring logger cat existing col classic con https://stackoverflow.com/questions/31433246/classcastexception-org-slf4j-impl-log4j
2類型轉換異常:Exception in thread "main" java.lang.ClassCastException:java.lang.Object cannot be cast to java.lang.Integer
cnblogs color pan rgs main string [] 類型 style public class TestException { public static void main(String[] args) { Object obj
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
protocol lang base arr ava ebs reat rac context 1、錯誤描寫敘述java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Str
org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframwork.web.mult..
avi 時間 div col rac ext framwork 框架 報錯 在用dwz框架+spring MVC時上傳文件報的錯 詳細錯誤例如以下: 事實上就是一個類型轉換錯誤,但卻研究了好長時間,怎麽都不知道哪裏錯了。由於前面卸過一個文
java.math.BigDecimal cannot be cast to java.lang.String
bigdecimal BigDecimal表示一個大整數,一般情況下很多整型都有個最大值的,但是有時候我們需要處理一些超過這個最大值的值,這個時候就出現了BigDecimal這樣的類用於表達大數值,這個錯誤應該是類型轉換過程中出現了問題.數據從數據庫中取出的,把數據庫中的整數轉成了BigDecimal 類型
WebLogic部署報java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory
jar包 使用 jar包沖突 ava 項目 div factor c項目 sax 今天在部署WebLogic項目時,報了java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cann
java.lang.Integer cannot be cast to java.lang.String
.com ger 調用 str 覆蓋 方法 pan 解決辦法 ava 錯誤原因是類型轉換! 說Integer 類型不能轉成String類型。 解決辦法: 將錯誤中的(String)強制轉換類型修改為 object.toString()
tomcat啟動報錯:java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to..
啟動tomcat的專案報錯如下: 解決思路: 1.看到這個錯誤,java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELC
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
在開發中,遇到這麼一個錯誤: 報錯的意思: Long 無法轉化成Integer型別. 網上的解釋是: 這裡在Hibernate2.0之前版本list.get(0)返回的是Integer型別.但是在Hibernate3.0以後版本list.ge
maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
maven專案解決辦法: 對於servlet-ap.jar 新增<scope>provided</scope> 即可解決。 <dependency> &l
Java報錯:java.math.BigDecimal cannot be cast to java.lang.String
從資料庫取count、sum等函式的值需要轉化成Integer的時候出現 java.math.BigDecimal cannot be cast to java.lang.String的報錯 錯誤程式碼: Integer.parseInt((String)map.get("id"
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
MySQL更新到8.0.11之後連線資料庫時會報出錯誤 Your login attempt was not successful, try again. Reason: Could not get JDBC Connection; nested exception is java.sql.SQ
com.rr.domain.Department_$$_javassist_5 cannot be cast to javassist.util.proxy.Proxy
com.rr.domain.Department_$$_javassist_5 cannot be cast to javassist.util.proxy.Proxy 兩個原因: 1、懶載入 在web.xml配置opensessioninviewfilter,須在struts2的s
hibernate-spring測試報錯:com.sun.proxy.$Proxy44 cannot be cast to com.mm.service.imp.RoleServic
錯誤內容 java.lang.ClassCastException: com.sun.proxy.$Proxy44 cannot be cast to com.mm.service.imp.RoleServiceImp 測試程式碼 ApplicationContext conte