zoukankan      html  css  js  c++  java
  • 对象(含有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时间格式.

  • 相关阅读:
    2020年. NET Core面试题
    java Context namespace element 'component-scan' and its parser class ComponentScanBeanDefinitionParser are only available on JDK 1.5 and higher 解决方法
    vue 淡入淡出组件
    java http的get、post、post json参数的方法
    vue 父子组件通讯案例
    Vue 生产环境解决跨域问题
    npm run ERR! code ELIFECYCLE
    Android Studio 生成apk 出现 :error_prone_annotations.jar (com.google.errorprone:error) 错误
    记忆解析者芜青【总集】
    LwIP应用开发笔记之十:LwIP带操作系统基本移植
  • 原文地址:https://www.cnblogs.com/Nbge/p/2617127.html
Copyright © 2011-2022 走看看