天天看點

[Java工具]JSON制作工具

自己寫的JSON工具類,用于制作JSON字元串

依賴:

<dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.2.4</version>
</dependency>
           

代碼:

package com.spz.work.zhxf.tool;

import com.google.gson.*;
import java.util.List;
import java.util.Map;

/**
 * JSON資料制作工具類
 * 使用工具: Google的json工具
 * @author spz
 * @date 2017/12/23
 */
public class JSONResultMake {

    //建立json解析器
    private JsonObject json = null;

    /**
     * 構造函數
     */
    public JSONResultMake(){
        json = new JsonObject();
    }

    /**
     * 給 JSON 字元串增加字段
     * @param key : 字元串類型
     * @param value : 字元串類型
     */
    public void addProperty(String key, String value){
        json.addProperty(key,value);
    }

    /**
     * 給 JSON 字元串增加字段
     * @param key : 字元串類型
     * @param value : Integer 類型
     */
    public void addProperty(String key, Integer value){
        json.addProperty(key,value);
    }

    /**
     * 給 JSON 字元串增加字段
     * @param key : 字元串類型
     * @param value : Boolean 類型
     */
    public void addProperty(String key, Boolean value){
        json.addProperty(key,value);
    }

    /**
     * 給 JSON 字元串增加二維表
     * 格式: "key":[{"qqq":"213"},{"qqq":"213"},{"qqq":"213"}]
     * @param key : 加入數組的key值,類型為字元串
     * @param list : 加入的數組
     */
    public void addTable(String key, List<Object> list){
        JsonArray table = new JsonArray();//json數組
        for(int index = 0; index < list.size(); index++){
            Gson gson = new GsonBuilder()
                    .setDateFormat("yyyy-MM-dd HH:mm:ss") //設定日期格式,不設定此項會導緻不同機器不一樣日期格式
                    .create();
            JsonObject object =  (JsonObject)new JsonParser().parse(gson.toJson(list.get(index)));//将對象轉化為JsonObject
            table.add(object);//将JsonObject加入json二維表
        }
        json.add(key,table);//将二維表加入總的json對象
    }

    /**
     * 給 JSON 字元串增加數組
     * @param key : 數組名稱
     * @param map : 數組内容的Map
     */
    public void addArray(String key, Map<String,String> map){
        JsonObject array = new JsonObject();
        for (Map.Entry<String,String> index : map.entrySet()) {
            array.addProperty(index.getKey(),index.getValue());
        }
        json.add(key,array);
    }

    /**
     * 給 JSON 字元串增加數組
     * 此方法會将類參數中的屬性轉換為json屬性
     * @param key : 數組名稱
     * @param object: 類
     */
    public void addArrayByClass(String key, Object object){
        Gson gson = new GsonBuilder()
                .setDateFormat("yyyy-MM-dd HH:mm:ss") //設定日期格式,不設定此項會導緻不同機器不一樣日期格式
                .create();
        JsonObject jObject =  (JsonObject)new JsonParser().parse(gson.toJson(object));//将對象轉化為JsonObject
        json.add(key,jObject);
    }

    /**
     * 擷取JSON對象的字元串形式
     * @return 字元串類型
     */
    public String getJson(){
        return json.toString();
    }

}
```