标签:
今天想看一下json把JSONObject转换成javabean的源代码,于是就建了一个简单的工程导入了json-lib-2.2.1.jar,写了一个实体类Student和一个main方法。
Student类:
package entity; public class Student { private String name; private int id; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [name=" + name + ", id=" + id + ", age=" + age + "]"; } }
main方法:
package sort; import entity.Student; import net.sf.json.JSONObject; public class JsonToBean { public static void main(String[] args) { String json = "{id:‘1001‘,name:‘张三‘,age:‘22‘}"; JSONObject jsonMetaData = JSONObject.fromObject(json); try { Student stud = (Student) JSONObject.toBean(jsonMetaData,Student.class); System.out.println(stud.toString()); } catch (Exception e) { System.out.println(e); } } }
然后觉得代码没问题,一编译就报classnotfound错误,原来要使用json-lib-2.2.1.jar的时候不仅仅要导入这个包,还要把以前几个包都导进来:
commons-logging-1.0.4.jar commons-lang-2.3.jar commons-collections-3.2.jar commons-beanutils-1.7.0.jar ezmorph-1.0.4.jar
2.倒入其余的jar包之后编译就没报classnotfound错误,却出现了一种新的错误:
net.sf.json.JSONException: java.lang.NoSuchMethodException: sort.JsonToBean$Student.<init>()
因为之前是因为省事直接把student定义成内部类了,改成正常的就可以了。
标签:
原文地址:http://www.cnblogs.com/kniught-ice/p/4742888.html