我使用吉森利卜将json对象转换为java。守则如下:
public class JsonConvertorDemo {
public static void main(String[] args) {
B b1 = new B("b1");
Map<String, B> bMap = new HashMap<String, B>();
bMap.put("key1", b1);
A a1 = new A(bMap);
JSONObject jsonObject = JSONObject.fromObject(a1);
String json = jsonObject.toString();
jsonObject = JSONObject.fromObject(json);
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("bMap", Map.class);
a1 = (A) JSONObject.toBean(jsonObject, A.class, classMap);
bMap = a1.getbMap();
System.out.println(bMap.get("key1").getB1());
}
}
public class A {
private Map<String, B> bMap = new HashMap<String, B>();
public A() {}
public A(Map<String, B> bMap) {
this.bMap = bMap;
}
public Map<String, B> getbMap() {
return bMap;
}
public void setbMap(Map<String, B> bMap) {
this.bMap = bMap;
}
}
public class B {
private String b1;
public B() {}
public B(String b1) {
this.b1 = b1;
}
public String getB1() {
return b1;
}
public void setB1(String b1) {
this.b1 = b1;
}
}它引发以下异常:
线程"main“java.lang.ClassCastException中的异常: 不能将net.sf.ezmorph.bean.MorphDynaBean转换为code.orgexample.json.B。 在code.orgexample.json.JsonConvertorDemo.main(JsonConvertorDemo.java:30)
有办法在json中指定映射值的类类型吗?
非常感谢你的帮助。
发布于 2011-06-20 13:58:07
据说这里 fromObject接受JSON格式的字符串、映射、DynaBeans和JavaBeans
发布于 2013-04-24 08:56:56
正如chro所说:
这里说fromObject接受JSON格式的字符串、映射、DynaBeans和JavaBeans
在我的代码中,ClassCastException是由以下原因引起的:
for (TheClass childNode : command.getChildren()) {当将代码更改为以下代码时,一切正常工作:
for (Object childNode : command.getChildren()) {
JSONObject fromObject = JSONObject.fromObject(childNode);
TheClass childCommand = (TheClass) JSONObject.toBean(fromObject,
TheClass.class);
}发布于 2013-12-20 08:29:42
http://hw1287789687.iteye.com/admin/blogs/1993048
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(Class2.class);
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("students", Student.class); // 指定JsonRpcRequest的request字段的内部类型
jsonConfig.setClassMap(classMap);https://stackoverflow.com/questions/6000370
复制相似问题