解决: 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;
}
}
相关推荐
但是会有一些问题,当读取的json值不确定时,会出现type cast的异常,比如当读取的值是String字符串,但是当做Integer来读,或者读取的是Float,但是当做String来读的时候,就会报错了。这个版本处理掉了这个问题,...
* $.ckObjToJsonStr(obj), obj对象转json字符串,如果出现异常,则返回"" * $.ckObjToJson(obj), obj对象转json对象, 如果出现异常则返回new Object() * $.ckIsEmpty(str, ifAlert), 返回是否为空值, str: jquery...
通过一个函数调用将完整的对象数组保存到ioBroker 对象树得到验证,因此必须定义路径中的所有设备,通道或文件夹ioBroker中不再需要的对象无法自动删除,可能出现字符串或正则表达式异常就像参数一样覆盖ioBroker...
(jQuery 1.2以上的版本支持) "text": 文本格式的字符串 error 数据类型: Function 请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的...
-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...
-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...