[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();
    }

}
```
相关文章
|
12月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
3688 1
|
监控 Java Unix
6个Java 工具,轻松分析定位 JVM 问题 !
本文介绍了如何使用 JDK 自带工具查看和分析 JVM 的运行情况。通过编写一段测试代码(启动 10 个死循环线程,分配大量内存),结合常用工具如 `jps`、`jinfo`、`jstat`、`jstack`、`jvisualvm` 和 `jcmd` 等,详细展示了 JVM 参数配置、内存使用、线程状态及 GC 情况的监控方法。同时指出了一些常见问题,例如参数设置错误导致的内存异常,并通过实例说明了如何排查和解决。最后附上了官方文档链接,方便进一步学习。
3381 4
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
486 0
|
12月前
|
人工智能 Java API
Java AI智能体实战:使用LangChain4j构建能使用工具的AI助手
随着AI技术的发展,AI智能体(Agent)能够通过使用工具来执行复杂任务,从而大幅扩展其能力边界。本文介绍如何在Java中使用LangChain4j框架构建一个能够使用外部工具的AI智能体。我们将通过一个具体示例——一个能获取天气信息和执行数学计算的AI助手,详细讲解如何定义工具、创建智能体并处理执行流程。本文包含完整的代码示例和架构说明,帮助Java开发者快速上手AI智能体的开发。
3652 8
|
11月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1178 4
|
11月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
526 1
|
11月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
463 1
|
Java 数据安全/隐私保护 计算机视觉
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本内容提供Java生成自定义图片的示例代码,涵盖基础图像创建、文本添加及保存功能,适合学习2D图形编程。包括教学示例图片生成、文本图层处理和数字水印技术实现方案。
|
安全 Java 编译器
JD-GUI,java反编译工具及原理: JavaDecompiler一个Java反编译器
Java Decompiler (JD-GUI) 是一款由 Pavel Kouznetsov 开发的图形化 Java 反编译工具,支持 Windows、Linux 和 Mac Os。它能将 `.class` 文件反编译为 Java 源代码,支持多文件标签浏览、高亮显示,并兼容 Java 5 及以上版本。JD-GUI 支持对整个 Jar 文件进行反编译,可跳转源码,适用于多种 JDK 和编译器。其原理基于将字节码转换为抽象语法树 (AST),再通过反编译生成代码。尽管程序可能带来安全风险,但可通过代码混淆降低可读性。最新版修复了多项识别错误并优化了内存管理。
11202 1
|
Java 数据安全/隐私保护
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本项目提供了一套基于Java的图片处理教学方案,包含自定义图片生成、图像水印添加及合法电子凭证生成技术示例。

热门文章

最新文章