json怎么写java对象?代码示例和注意事项有哪些?
JSON在Java中的基础语法与实现
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和灵活性被广泛应用于Java开发中,在Java中处理JSON数据,通常涉及生成JSON字符串、解析JSON字符串以及与Java对象之间的转换,掌握JSON的书写和操作方法,对于开发高效的数据交互系统至关重要。

JSON的基本语法结构
JSON数据由两种结构组成:对象(Object)和数组(Array)。
- 对象:使用花括号 包裹,以键值对形式存储数据,键(key)必须是字符串类型,值(value)可以是字符串、数字、布尔值、数组、对象或null,键值对之间用逗号分隔。
{
"name": "张三",
"age": 25,
"isStudent": true
} - 数组:使用方括号
[]包裹,元素可以是任意JSON数据类型,元素之间用逗号分隔。[
"苹果",
"香蕉",
{
"color": "红色",
"price": 5.5
}
]
Java中生成JSON字符串
在Java中,可以通过手动拼接字符串或使用第三方库(如Gson、Jackson、Fastjson)生成JSON数据,推荐使用第三方库,以避免手动拼接时可能出现的语法错误。
示例(使用Gson库):
-
添加Gson依赖(Maven):

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency> -
将Java对象转换为JSON字符串:
import com.google.gson.Gson;
public class User {
private String name;
private int age;
private boolean isStudent;
// 构造方法、getter和setter省略
}
public class Main {
public static void main(String[] args) {
User user = new User();
user.setName("李四");
user.setAge(30);
user.setStudent(false);
Gson gson = new Gson();
String jsonString = gson.toJson(user);
System.out.println(jsonString);
// 输出:{"name":"李四","age":30,"isStudent":false}
}
}
Java中解析JSON字符串
将JSON字符串转换为Java对象是常见需求,同样可以通过Gson等库实现。
示例(使用Gson解析JSON):
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\":\"王五\",\"age\":28,\"isStudent\":true}";
Gson gson = new Gson();
User user = gson.fromJson(jsonString, User.class);
System.out.println("姓名:" + user.getName());
// 输出:姓名:王五
}
}
处理复杂JSON结构
当JSON数据包含嵌套对象或数组时,需在Java中定义对应的嵌套类或集合类型。

{
"user": {
"name": "赵六",
"hobbies": ["读书", "游泳"]
}
}
对应的Java类可设计为:
public class HobbyData {
private User user;
// getter和setter省略
}
public class User {
private String name;
private List<String> hobbies;
// getter和setter省略
}
通过gson.fromJson(jsonString, HobbyData.class)即可完成解析。
注意事项
- 命名规范:JSON键通常使用驼峰命名法或下划线命名法,需与Java字段保持一致或通过注解(如Gson的
@SerializedName)映射。 - 异常处理:解析JSON时需捕获
JsonSyntaxException,避免格式错误导致程序崩溃。 - 性能优化:对于大量数据,推荐使用流式API(如Jackson的
JsonParser),减少内存消耗。
通过以上方法,开发者可以灵活地在Java中书写、生成和解析JSON数据,实现高效的前后端交互或数据存储。