[Java工具]JSON制作工具

简介: 自己写的JSON工具类,用于制作JSON字符串依赖: com.google.code.gson gson 2.2.

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

}
```
相关文章
|
1月前
|
JSON 前端开发 JavaScript
|
29天前
|
Java
java中日期处理的一些工具方法
java中日期处理的一些工具方法
17 1
|
11天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
23 0
|
16天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
29天前
|
安全 Java 数据安全/隐私保护
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
|
29天前
|
安全 Java 数据安全/隐私保护
探讨 Java 代码混淆加固工具
探讨 Java 代码混淆加固工具
|
30天前
|
存储 安全 Java
基于Java的qq截图工具(毕业设计含源码)
基于Java的qq截图工具(毕业设计含源码)
28 0
|
1月前
|
监控 NoSQL Java
性能工具之 Java 调试工具 JDB
【2月更文挑战第25天】性能工具之 Java 调试工具 JDB
35 4
|
1月前
|
Cloud Native Java 开发者
Spring Boot 4.0:构建云原生Java应用的前沿工具
Spring Boot 4.0:构建云原生Java应用的前沿工具