对象(含有java.util.Date),集合等转换成json

json格式化自带类

package A.test;



import java.text.SimpleDateFormat;   

import java.util.Date;   

import java.util.Locale;   

  

import net.sf.json.JsonConfig;   

import net.sf.json.processors.JsonValueProcessor;   

  

public class JsonDateValueProcessor implements JsonValueProcessor {   

  

    private String format ="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 = new SimpleDateFormat(format,Locale.UK);   

            return sdf.format(value);   

        }   

        return value == null ? "" : value.toString();   

    }   

}

2.测试类

package A.test;



import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;



import net.sf.json.JSON;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import net.sf.json.JSONSerializer;

import net.sf.json.JsonConfig;

//转换时间格式后--需要commons-beanutils.jar,commons-collections-3.2.1.jar,commons-lang.jar,commons-logging-1.0.4.jar

//ezmorph-1.0.1.jar,json-lib-2.4-jdk15.jar



public class Json {

    // 不转换时间

    // public static void main(String[] args) {

    // Student st = new Student();

    // st.setName("张翠山");

    // st.setTeacher("张三丰");

    // st.setTime(new Date());

    // JSON jo = JSONSerializer.toJSON(st);

    // System.out.println("json:" + jo.toString());

    // }

    // 对象转换

    // public static void main(String[] args) {

    // Student st = new Student();

    // st.setName("张翠山");

    // st.setTeacher("张三丰");

    // st.setTime(new Date());

    //

    // JsonConfig jsonConfig = new JsonConfig();

    // //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法

    // jsonConfig.registerJsonValueProcessor(Date.class , new

    // JsonDateValueProcessor());

    // JSONArray jo = JSONArray.fromObject(st, jsonConfig);

    // System.out.println("json:" + jo.toString());

    // }

    // 集合转换

    // public static void main(String[] args) {

    // List<Object> list = new ArrayList<Object>();

    // Date date = new Date();

    // System.out.println(date);

    // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");

    // String s= sdf.format(date);

    // System.out.println(s);

    // // try {

    // // Date d = sdf.parse(s);

    // // System.out.println(d);

    // list.add(0,s);

    // // } catch (ParseException e) {

    // // TODO Auto-generated catch block

    // // e.printStackTrace();

    // // }

    // list.add(1,"张三");

    // list.add(2,2);

    // list.add(3,"李四");

    // list.add(4,date);

    // JsonConfig jsonConfig = new JsonConfig();//JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法

    // jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());

    // JSONArray jo = JSONArray.fromObject(list, jsonConfig);

    // System.out.println("json:" + jo.toString());

    // }

    // 集合转换

    public static void main(String[] args) {

        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        Map<String, Object> s1 = new HashMap<String, Object>();

        s1.put("name", "jim");

        s1.put("age", "15");

        s1.put("time", new Date());

        list.add(s1);

        Map<String, Object> s2 = new HashMap<String, Object>();

        s2.put("name", "lucy");

        s2.put("age", "12");

        s2.put("time", new Date());

        list.add(s2);

        JsonConfig jsonConfig = new JsonConfig();

        jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());

        JSONArray jo = JSONArray.fromObject(list, jsonConfig);

        System.out.println("json:" + jo.toString());

    }

}

3.测试类中的实体类

package A.test;



import java.util.Date;



public class Student {

    private String name;

    private String teacher;

    private Date time;

    

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String getTeacher() {

        return teacher;

    }

    public void setTeacher(String teacher) {

        this.teacher = teacher;

    }

    public Date getTime() {

        return time;

    }

    public void setTime(Date time) {

        this.time = time;

    }

    

    

}

4.自己反复测试过,100%可以使用。主要是针对java.util.Date时间格式.

你可能感兴趣的:(java)