1. 程式人生 > >資料庫查回來資料封裝成Javabean再轉json(有Date型別不能轉json處理方法)

資料庫查回來資料封裝成Javabean再轉json(有Date型別不能轉json處理方法)

json-lib

  • Javabean轉json需要用到json-lib包,它可以把javabean轉換成json串
  • jar包

        json-lib的核心jar包有:
     
          json-lib.jar

        json-lib的依賴jar包有:

          commons-lang.jar

          commons-beanutils.jar

          commons-logging.jar

          commons-collections.jar

          ezmorph.jar

  • 核心類

     JSONObject json = JSONObject.fromObject(person);//把物件轉換成JSONObject物件
JSONArray jsonArray = JSONObject.fromObject(list):把list轉換成JSONArray物件

示例

  • User類

    package com.yuzk.test;
    /**
     * User類
     * @author yuzk
     *
     */
    public class User {
        private String name;
        private Integer age;
        private String address;
        public String getName() {
            return name;
        }
        public
    void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this
    .address = address; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", address=" + address + "]"; } }
  • 測試類

    public class test {
        @Test
        public void testJson(){
            User user = new User();
            user.setName("張三");
            user.setAge(24);
            user.setAddress("火星");
            System.out.println(beanToJson(user));
        }
         public String beanToJson(Object bean) {  
            JSONObject json = JSONObject.fromObject(bean);  
            return json.toString();  
    
        }
  • 但是如果從資料庫查資料,有日期型別,上述方法不能把Javabean轉換為json,需要修改方法,加兩行程式碼

    public String beanToJson2(Object bean) {  
        // 用來解決date型別不能轉json的方法
        JsonConfig jsonConfig = new JsonConfig();  
        jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());  
    
        JSONObject json = JSONObject.fromObject(bean,jsonConfig);  
        return json.toString(); 
    }