在 Java 中动态创建 JSON,常用的类库有 FastJSON、Jackson 和 Gson,以下是三种类库的简洁实现方式,可灵活构建不同结构的 JSON 数据:

 

1. 使用 FastJSON(阿里开源,轻量高效)

 

import com.alibaba.fastjson.JSONObject;

 

public class FastJsonDemo {

    public static void main(String[] args) {

        // 1. 创建空的 JSON 对象

        JSONObject jsonObj = new JSONObject();

        // 2. 动态添加键值对(支持不同数据类型)

        jsonObj.put("name", "STM32开发笔记");

        jsonObj.put("version", 1.0);

        jsonObj.put("isPublic", true);

        

        // 3. 嵌套 JSON 对象

        JSONObject author = new JSONObject();

        author.put("id", 1001);

        author.put("nickname", "嵌入式开发者");

        jsonObj.put("author", author);

        

        // 4. 转为 JSON 字符串

        String jsonStr = jsonObj.toJSONString();

        System.out.println(jsonStr);

    }

}

 

 

2. 使用 Jackson(Spring 生态默认,功能全面)

 

import com.fasterxml.jackson.databind.JsonNode;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.node.ObjectNode;

 

public class JacksonDemo {

    public static void main(String[] args) {

        ObjectMapper objectMapper = new ObjectMapper();

        // 1. 创建空的 ObjectNode(动态 JSON 对象)

        ObjectNode jsonObj = objectMapper.createObjectNode();

        

        // 2. 动态添加属性

        jsonObj.put("name", "STM32开发笔记");

        jsonObj.put("version", 1.0);

        jsonObj.put("isPublic", true);

        

        // 3. 嵌套 JSON 对象

        ObjectNode author = objectMapper.createObjectNode();

        author.put("id", 1001);

        author.put("nickname", "嵌入式开发者");

        jsonObj.set("author", author);

        

        // 4. 转为 JSON 字符串

        try {

            String jsonStr = objectMapper.writeValueAsString(jsonObj);

            System.out.println(jsonStr);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

 

 

3. 使用 Gson(谷歌开源,简洁易用)

 

import com.google.gson.JsonObject;

 

public class GsonDemo {

    public static void main(String[] args) {

        // 1. 创建空的 JSON 对象

        JsonObject jsonObj = new JsonObject();

        // 2. 动态添加键值对

        jsonObj.addProperty("name", "STM32开发笔记");

        jsonObj.addProperty("version", 1.0);

        jsonObj.addProperty("isPublic", true);

        

        // 3. 嵌套 JSON 对象

        JsonObject author = new JsonObject();

        author.addProperty("id", 1001);

        author.addProperty("nickname", "嵌入式开发者");

        jsonObj.add("author", author);

        

        // 4. 转为 JSON 字符串

        String jsonStr = jsonObj.toString();

        System.out.println(jsonStr);

    }

}

 

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐