`

json 字符串转Object 时出现异常

    博客分类:
  • java
 
阅读更多

解决: json 字符串转Object  时出现 java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to cashway.test.JsonString 异常的问题。

解决方法:设置JsonConfig 类。

 

解决方法:public void strToJson(String str){
    
  JSONArray parentJson = JSONArray.fromObject(str);
  //设置类型
  JsonConfig jsonConfig = new JsonConfig();
  jsonConfig.setRootClass(JsonString.class);   //JsonString.class 
        Map<String, Class> classMap = new HashMap<String, Class>(); 
        classMap.put("topic", Sub.class);  //Sub.class 设置jonString类中包含的类
        jsonConfig.setClassMap(classMap);
  
  List<JsonString> persons = (List<JsonString>)JSONArray.toCollection(parentJson, jsonConfig);
  
  

  //遍历列表
  for(JsonString p:persons){
   System.out.println("id"+p.getId() +" name:"+p.getName() );
   List<Sub> li = p.getTopic();
   int len = li.size();
   if(li != null && len > 0){
    for(int i=0;i<len;i++){
     Sub sub = p.getTopic().get(i);
     System.out.println("type:"+sub.getType() +" subType:"+sub.getSubtype());
    }
   }
  }
  
 }

 

2.pojo

 

package cashway.test;

public class Sub {
 
 private String type;
 private String subtype;
 
 public String getType() {
  return type;
 }
 public void setType(String type) {
  this.type = type;
 }
 public String getSubtype() {
  return subtype;
 }
 public void setSubtype(String subtype) {
  this.subtype = subtype;
 }

}

 

 

package cashway.test;

import java.util.ArrayList;
import java.util.List;

public class JsonString {
 
 public static final String  STR_JSON= "["
        +"{"
            +"\"id\": \"1\","
            +"\"name\": \"兰州拉面馆\","
            +"\"country\": \"120112\","
            +"\"address\": \"津南区底商B座6号\","
            +"\"ifvalid\": \"True\","
            +"\"updatetime\": \"2013-9-11 15:30:50\","
            +"\"attribute\": \"450\","
            +"\"phone\": \"123456789\","
            +"\"topic\": ["
            +"{"
            +" \"type\": \"fx\","
            +"\"subtype\": \"4\""
            +"}"
            +"]"
            +"},"
            +"{"
            +"\"id\": \"222222\","
            +"\"name\": \"中学食堂\","
            +"\"country\": \"120\","
            +"\"address\": \"大丰堆镇\","
            +" \"ifvalid\": \"False\","
            +"\"updatetime\": \"2015-9-11 15:31:35\","
            +"\"attribute\": \"30\","
            +"\"phone\": \"233344555\""
            +"}"
            +"]";
 
 private String id;
 private String name;
 private String country;
 private String address;
 private String ifvalid;
 private String updatetime;
 private String attribute;
 private String phone;
 private List<Sub> topic = new ArrayList<Sub>();
 
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getCountry() {
  return country;
 }
 public void setCountry(String country) {
  this.country = country;
 }
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 public String getIfvalid() {
  return ifvalid;
 }
 public void setIfvalid(String ifvalid) {
  this.ifvalid = ifvalid;
 }
 public String getUpdatetime() {
  return updatetime;
 }
 public void setUpdatetime(String updatetime) {
  this.updatetime = updatetime;
 }
 public String getAttribute() {
  return attribute;
 }
 public void setAttribute(String attribute) {
  this.attribute = attribute;
 }
 public String getPhone() {
  return phone;
 }
 public void setPhone(String phone) {
  this.phone = phone;
 }
 public List<Sub> getTopic() {
  return topic;
 }
 public void setTopic(List<Sub> topic) {
  this.topic = topic;
 }
}

 

 


 

 

 

分享到:
评论

相关推荐

    Delphi x-superobject 跨平台的JSON处理单元andriod ios可用

    但是会有一些问题,当读取的json值不确定时,会出现type cast的异常,比如当读取的值是String字符串,但是当做Integer来读,或者读取的是Float,但是当做String来读的时候,就会报错了。这个版本处理掉了这个问题,...

    前端功能性插件集合

    * $.ckObjToJsonStr(obj), obj对象转json字符串,如果出现异常,则返回"" * $.ckObjToJson(obj), obj对象转json对象, 如果出现异常则返回new Object() * $.ckIsEmpty(str, ifAlert), 返回是否为空值, str: jquery...

    iobroker-object-helper

    通过一个函数调用将完整的对象数组保存到ioBroker 对象树得到验证,因此必须定义路径中的所有设备,通道或文件夹ioBroker中不再需要的对象无法自动删除,可能出现字符串或正则表达式异常就像参数一样覆盖ioBroker...

    jquery-1.1.3 效率提高800%

    (jQuery 1.2以上的版本支持) "text": 文本格式的字符串 error 数据类型: Function 请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    ExtAspNet_v2.3.2_dll

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java开源包1

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包11

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包2

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包3

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包6

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包5

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包10

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包4

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包8

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包7

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包9

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

Global site tag (gtag.js) - Google Analytics