JSON字符串处理
jackson
Jackson是一个用于处理JSON数据的Java库,它提供了将Java对象转换为JSON格式和将JSON格式转换为Java对象的功能。
-
添加依赖:如果你使用Maven,可以在
pom.xml
中添加以下依赖:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency>
-
创建Java类:定义一个Java类,表示你要序列化或反序列化的对象。例如:
public class User { private String name; private int age; // Getters and Setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
-
序列化Java对象为JSON:
import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); User user = new User(); user.setName("Alice"); user.setAge(30); // 将Java对象转换为JSON字符串 String jsonString = objectMapper.writeValueAsString(user); System.out.println(jsonString); } }
-
反序列化JSON为Java对象:
public class Main { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); String jsonString = "{\"name\":\"Alice\",\"age\":30}"; // 将JSON字符串转换为Java对象 User user = objectMapper.readValue(jsonString, User.class); System.out.println("Name: " + user.getName() + ", Age: " + user.getAge()); } }
Gson
Gson是一个用于处理JSON数据的Java库,由Google开发。它提供了将Java对象转换为JSON格式和将JSON格式转换为Java对象的功能。
-
添加依赖:如果你使用Maven,可以在
pom.xml
中添加以下依赖:<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.9</version> </dependency>
-
创建Java类:定义一个Java类,表示你要序列化或反序列化的对象。例如:
public class User { private String name; private int age; // Getters and Setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
-
序列化Java对象为JSON:
import com.google.gson.Gson; public class Main { public static void main(String[] args) { Gson gson = new Gson(); User user = new User(); user.setName("Alice"); user.setAge(30); // 将Java对象转换为JSON字符串 String jsonString = gson.toJson(user); System.out.println(jsonString); } }
-
反序列化JSON为Java对象:
public class Main { public static void main(String[] args) { Gson gson = new Gson(); String jsonString = "{\"name\":\"Alice\",\"age\":30}"; // 将JSON字符串转换为Java对象 User user = gson.fromJson(jsonString, User.class); System.out.println("Name: " + user.getName() + ", Age: " + user.getAge()); } }
Fastjson
Fastjson 是阿里巴巴提供的一个 Java 语言编写的高性能功能完善的 JSON 库,是目前 Java 语言中最快的JSON 库,可以实现 Java 对象和 JSON 字符串的相互转换。
- 导入坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
- Java对象转JSON 用 JSON.toJSONString( ) 方法
- JSON字符串转JAVA对象 用 JSON.parseObject(JSON字符串 , 对象.class)方法
JSONObject:
JSONObject
是一个键值对的集合,可以看作是一个无序的映射,其中每个键都是字符串,值可以是任何数据类型,包括其他的 JSONObject
、JSONArray
、字符串、数字、布尔值等。
语法示例(Java):
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Alice");
jsonObject.put("age", 30);
jsonObject.put("isStudent", false);
String jsonString = "{\"name\":\"Alice\", \"age\":30}";
JSONObject jsonObject = new JSONObject(jsonString); // 转换为 JSONObject
//从 JSONObject 转换为普通 Java 对象
Person person = new Person();
person.setName(jsonObject.getString("name"));
person.setAge(jsonObject.getInt("age"));
JSONArray:
JSONArray
是一个有序的值集合,值可以是任何类型,包括其他的 JSONObject
、字符串、数字、布尔值等。
语法示例(Java):
JSONArray jsonArray = new JSONArray();
jsonArray.put("item1");
jsonArray.put("item2");
jsonArray.put(3);
//实例
String specValue = "[{"key":"内存","valueList":["8G","16G","32G"]}]"
JSONArray jsonArray = JSON.parseArray(specValue); //将字符串转换为JSONArray
String jsonArrayString = "[\"item1\", \"item2\", 3]";
JSONArray jsonArray = new JSONArray(jsonArrayString); // 转换为 JSONArray
JSON 数据结构
- JSON 对象(JSONObject): 表示一个键值对的集合,通常用大括号
{}
括起来。 - JSON 数组(JSONArray): 表示一个值的有序集合,通常用方括号
[]
括起来。