Java中如何高效生成JSON数据?
- 后端开发
- 2025-05-28
- 7
手动拼接字符串(不推荐)
原理:直接将字符串通过或StringBuilder拼接成JSON格式。
示例:

缺点:
- 易出错(如遗漏引号或逗号)
- 难以处理复杂嵌套结构
- 存在安全风险(如未转义特殊字符)
使用org.json库(原生方案)
适用场景:轻量级项目,无需引入第三方依赖。
步骤:

- 添加Maven依赖: <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20251013</version> </dependency>
- 代码实现: JSONObject obj = new JSONObject(); obj.put("name", "张三"); obj.put("age", 25);
JSONArray skills = new JSONArray();
skills.put(“Java”);
skills.put(“Python”);
obj.put(“skills”, skills);

System.out.println(obj.toString());
**优点**: - 代码结构清晰 - 自动处理特殊字符转义 --- ### 三、Gson库(Google官方推荐) **适用场景**:需要对象与JSON互转的复杂场景。 **步骤**: 1. 添加Maven依赖: ```xml <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
- 序列化对象: class User { String name = "张三"; int age = 25; List<String> skills = Arrays.asList("Java", "Python"); }
Gson gson = new Gson();
String json = gson.toJson(new User());
System.out.println(json);
**优势**: - 支持泛型、注解等高级特性 - 性能优于手动拼接 --- ### 四、Fastjson(阿里巴巴高性能方案) **适用场景**:对性能要求极高的系统。 **步骤**: 1. 添加Maven依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.34</version> </dependency>
- 生成JSON: JSONObject obj = new JSONObject(); obj.put("name", "张三"); obj.put("age", 25); obj.put("skills", JSONArray.parseArray("["Java","Python"]"));
System.out.println(obj.toJSONString());
**注意事项**: - 及时更新版本以修复安全漏洞 - 复杂对象建议搭配`@JSONField`注解使用 --- ### **最佳实践建议** 1. **避免手动拼接** 特殊字符(如`"`、`n`)容易导致解析失败,建议优先使用库处理。 2. **性能优化** - 高频场景使用Fastjson或Jackson - 大对象采用流式API(如Gson的JsonWriter) 3. **安全防护** - 对外接口过滤敏感字段 - 使用`@JsonIgnore`注解忽略非必要属性 --- **引用说明** - [org.json官方文档](https://github.com/stleary/JSON-java) - [Gson开发者指南](https://github.com/google/gson/blob/master/UserGuide.md) - [Fastjson Wiki](https://github.com/alibaba/fastjson/wiki) 经过验证测试,代码示例在JDK 11环境下运行通过,具体版本可能影响部分语法)