/*封装的对象*/publicclassStudent{privateintname;privateintage;privateChildchild;settergetter方法省略}publicclassChild{privateStringa;privateStringb;settergetter方法省略}p...
/*封装的对象*/
public class Student {
private int name;
private int age;
private Child child;
setter getter方法省略}
public class Child {
private String a;
private String b;
setter getter方法省略
}
public class json {
public static void main(){
String str = "{name:11,age:2,child:[{a:'3',b:'4'}]}";
JSONObject obj = JSONObject.fromObject(str);
Map map = new HashMap();
map.put("child",Child.class);
Student s = (Student)JSONObject.toBean(obj,Student.class,map);
System.out.println(s.getAge());
System.out.println(s.getName());
System.out.println(s.getChild().getA());
System.out.println(s.getChild().getB());
}}
/*报错*/
严重: Method invocation failed.
java.lang.IllegalArgumentException: argument type mismatch
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:577)
at net.sf.json.util.PropertySetStrategy$DefaultPropertySetStrategy.setProperty(PropertySetStrategy.java:43)
Exception in thread "main" net.sf.json.JSONException: java.lang.IllegalArgumentException: Cannot invoke com.Student.setChild - argument type mismatch
Caused by: java.lang.IllegalArgumentException: Cannot invoke com.Student.setChild - argument type mismatch
/*说明*/
我用的是json-lib-jdk.jar所需的jar包已经导入,就别在导入包的问题上浪费时间了
展开