在Java中将字符串转换为JSON对象数组
在Java中,将字符串转换为JSON对象数组通常需要使用JSON处理库,以下是几种常用的方法:
使用Gson库
Gson是Google提供的JSON处理库。
首先添加依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
示例代码:
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
public class JsonStringToArray {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
Gson gson = new Gson();
Type listType = new TypeToken<List<Person>>(){}.getType();
List<Person> personList = gson.fromJson(jsonString, listType);
// 使用personList...
}
}
class Person {
private String name;
private int age;
// getters and setters
}
使用Jackson库
Jackson是另一个流行的JSON处理库。

添加依赖:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
示例代码:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JsonStringToArray {
public static void main(String[] args) throws Exception {
String jsonString = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
ObjectMapper objectMapper = new ObjectMapper();
List<Person> personList = objectMapper.readValue(jsonString, new TypeReference<List<Person>>() {});
// 使用personList...
}
}
class Person {
private String name;
private int age;
// getters and setters
}
使用org.json库
这是一个轻量级的JSON库。
添加依赖:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20250307</version>
</dependency>
示例代码:
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class JsonStringToArray {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
JSONArray jsonArray = new JSONArray(jsonString);
List<Person> personList = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Person person = new Person();
person.setName(jsonObject.getString("name"));
person.setAge(jsonObject.getInt("age"));
personList.add(person);
}
// 使用personList...
}
}
class Person {
private String name;
private int age;
// getters and setters
}
注意事项
- 确保JSON字符串格式正确,否则会抛出异常
- 根据你的项目需求选择合适的JSON库
- 如果JSON结构复杂,可能需要创建对应的Java类来映射
- 处理大型JSON时,考虑使用流式API以提高性能
方法都可以将JSON字符串转换为Java对象数组,选择哪种方法取决于你的具体需求和项目环境。
