美文网首页Java学习笔记Java 杂谈
[Java工具]JSON制作工具

[Java工具]JSON制作工具

作者: 后端技术学习分享 | 来源:发表于2017-12-26 09:28 被阅读54次

自己写的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();
    }

}
```

相关文章

网友评论

    本文标题:[Java工具]JSON制作工具

    本文链接:https://www.haomeiwen.com/subject/ewldgxtx.html