json格式传输数据很爽,简单普及下json,从百科cp一句话如下:
也就是说大家用json做数据交换跟xml一样,本文基于json-lib版本为json-lib-2.4-jdk15.jar。目的是把一个json串转换成一个vo类。举例
{ "id": "Elliotte", "name": "Harold" }
public static Object toBean(JSONObject jsonObject) public static Object toBean(JSONObject jsonObject, Class beanClass) public static Object toBean(JSONObject jsonObject, Class beanClass, Map classMap) public static Object toBean(JSONObject jsonObject, JsonConfig jsonConfig)
public class Student { private String id; private String name; 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; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } }
public static void main(String[] args) { Map<String, Class<String>> classMap = new HashMap<String, Class<String>>(); classMap.put("id", String.class); classMap.put("name", String.class); String content = "{ \"id\": \"Elliotte\", \"name\":\"Harold\" }"; Student vo = new Student(); try { vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), Student.class); System.out.println("**Student:" + vo); vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), Student.class, classMap); System.out.println("**Student:" + vo); MorphDynaBean t = (MorphDynaBean) JSONObject.toBean(JSONObject.fromObject(content)); System.out.println("**Student:" + t.get("id")); JsonConfig jc = new JsonConfig(); jc.setRootClass(Student.class); vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), jc); System.out.println("**Student:" + vo); } catch (Exception e) { e.printStackTrace(); } }
1.vo类必须为public的否则跑属性缺失异常