你的位置:首页 > Java教程

[Java教程]json


json所依赖的jar包
http://files.cnblogs.com/files/wenjie123/json_jar%E5%8C%85.rar

package com.hp.svse;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;/** * Timestamp 处理器 */public class JsonDateValueProcessor implements JsonValueProcessor { private String formatDateTime ="yyyy-MM-dd HH:mm:ss"; private String formatDate ="yyyy-MM-dd"; public Object processArrayValue(Object value, JsonConfig config) { return process(value); } public Object processObjectValue(String key, Object value, JsonConfig config) { return process(value); } private Object process(Object value){ if(value instanceof Date){ SimpleDateFormat sdf ; if(value.toString().length()<=11||value.toString().indexOf("00:00:00.0")>=0){ sdf= new SimpleDateFormat(formatDate,Locale.UK); }else{ sdf= new SimpleDateFormat(formatDateTime,Locale.UK); } return sdf.format(value); } return value == null ? "" : value.toString(); }}

package com.hp.svse;import java.util.ArrayList;import java.util.Date;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import net.sf.json.JsonConfig;public class JsonTest {  public static void main(String[] args) {        /**     * 将对象集合转换成JSON格式的字符串     */    List<Student> students = new ArrayList<Student>();    students.add(new Student("小明1", "男", "湖北", "SVSE"));    students.add(new Student("小明2", "女", "广东", "GIS"));    students.add(new Student("小明3", "男", "香港", "3G"));    JsonTest jsonTest = new JsonTest();    String json = jsonTest.beanListToJSON(students);    System.out.println(json);    /**     * 输出结果:     * [     *   {"sex":"男","address":"湖北","stuname":"小明1","classname":"SVSE","smallStudents":[]},     *   {"sex":"女","address":"广东","stuname":"小明2","classname":"GIS","smallStudents":[]},     *   {"sex":"男","address":"香港","stuname":"小明3","classname":"3G","smallStudents":[]}     * ]     */                        /**     * 将json字符串转换成json对象 再讲json对象转换成实体对象bean     */    String bookCotentjsonStr = "{\"sex\":\"男\",\"address\":\"湖北\",\"stuname\":\"小明1\",\"classname\":\"SVSE\"}";    JSONObject bookCotentjson = JSONObject.fromObject(bookCotentjsonStr);    Student student = (Student) JSONObject.toBean(bookCotentjson, Student.class);    System.out.println(student);    /**     * 输出结果:Student [address=湖北, classname=SVSE, sex=男, stuname=小明1]     */                    /**     * 将对象转换成JSON格式的字符串 适用于单个对象(单个对象里可以包含List<T>)的转换     */    List<SmallStudent> smallStudents = new ArrayList<SmallStudent>();    for (int i = 0; i < 3; i++) {      SmallStudent smallStudent = new SmallStudent();      smallStudent.setName("小学生"+i);      smallStudent.setAge("1"+i);      smallStudents.add(smallStudent);    }    Student student2 = new Student("小明", "男", "武汉", "svse",smallStudents);    String jsonStr = jsonTest.beanToJSON(student2);    System.out.println(jsonStr);    /**     * 输出结果:     * {"sex":"男","address":"武汉","stuname":"小明","classname":"svse","smallStudents":[{"sex":"","age":"10","name":"小学生0"},{"sex":"","age":"11","name":"小学生1"},{"sex":"","age":"12","name":"小学生2"}]}     */              }  /**   * 将集合转换成JSON格式的字符串   */  public <T> String beanListToJSON(List<T> t) {    String json = "";    JsonConfig jsonConfig = new JsonConfig();    jsonConfig.registerJsonValueProcessor(Date.class,        new JsonDateValueProcessor());    if(t!=null){    json = JSONArray.fromObject(t, jsonConfig).toString();    }else{      json="[]";    }    return json;  }    /**   * 将对象转换成JSON格式的字符串 适用于单个对象(单个对象里可以包含List<T>)的转换   */  public <T> String beanToJSON(T t) {    String json = "";    JsonConfig jsonConfig = new JsonConfig();    jsonConfig.registerJsonValueProcessor(Date.class,        new JsonDateValueProcessor());    if(t!=null){    json = JSONObject.fromObject(t, jsonConfig).toString();    }else{      json="[]";    }    return json;  }}

package com.hp.svse;import java.util.List;public class Student {  private String stuname;  private String sex;  private String address;  private String classname;  private List<SmallStudent> smallStudents;    public Student(String stuname, String sex, String address, String classname,List<SmallStudent> smallStudents) {    super();    this.stuname = stuname;    this.sex = sex;    this.address = address;    this.classname = classname;    this.smallStudents = smallStudents;  }  public Student(String stuname, String sex, String address, String classname) {    super();    this.stuname = stuname;    this.sex = sex;    this.address = address;    this.classname = classname;  }  public Student() {    super();  }  public String getStuname() {    return stuname;  }  public void setStuname(String stuname) {    this.stuname = stuname;  }  public String getSex() {    return sex;  }  public void setSex(String sex) {    this.sex = sex;  }  public String getAddress() {    return address;  }  public void setAddress(String address) {    this.address = address;  }  public String getClassname() {    return classname;  }  public void setClassname(String classname) {    this.classname = classname;  }  public List<SmallStudent> getSmallStudents() {    return smallStudents;  }  public void setSmallStudents(List<SmallStudent> smallStudents) {    this.smallStudents = smallStudents;  }  @Override  public String toString() {    return "Student [address=" + address + ", classname=" + classname        + ", sex=" + sex + ", stuname=" + stuname + "]";  }  }

package com.hp.svse;public class SmallStudent {  private String name;  private String age;  private String sex;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public String getAge() {    return age;  }  public void setAge(String age) {    this.age = age;  }  public String getSex() {    return sex;  }  public void setSex(String sex) {    this.sex = sex;  }  @Override  public String toString() {    return "SmallStudent [age=" + age + ", name=" + name + ", sex=" + sex        + "]";  }}