Java中五种方法让JSON字符串转list,并举例
时间: 2025-01-20 10:11:09 浏览: 43
在Java中,有多种方法可以将JSON字符串转换成List对象,这里列举几种常见的:
1. 使用`com.fasterxml.jackson.databind.ObjectMapper` (Jackson库):
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
String jsonString = "{\"fruits\":[\"Apple\",\"Banana\",\"Cherry\"]}";
ObjectMapper mapper = new ObjectMapper();
List<String> list = mapper.readValue(jsonString, new TypeReference<List<String>>() {});
```
在这个例子中,`readValue`方法将JSON字符串解析成了一个`List<String>`。
2. 使用Gson库:
```java
import com.google.gson.Gson;
String jsonString = "[\"Apple\",\"Banana\",\"Cherry\"]";
Gson gson = new Gson();
List<String> list = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());
```
Gson也提供了相似的`fromJson`方法来转换JSON。
3. 使用org.json库:
```java
import org.json.JSONArray;
String jsonString = "[\"Apple\",\"Banana\",\"Cherry\"]";
JSONArray jsonArray = new JSONArray(jsonString);
List<String> list = jsonArray.toList(String.class);
```
这里通过`JSONArray`的`toList`方法直接转化。
4. 如果是简单的键值对列表,可以使用Java内置的`json`包(如果存在的话),如`org.json.JSONObject`:
```java
import org.json.JSONObject;
String jsonString = "{\"items\":[{\"name\":\"Apple\"},{\"name\":\"Banana\"}]";
JSONObject jsonObject = new JSONObject(jsonString);
List<Map<String, String>> list = new ArrayList<>();
JSONArray jsonArray = jsonObject.getJSONArray("items");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject item = jsonArray.getJSONObject(i);
list.add(item.toMap());
}
```
这会将每个JSONObject转化为一个Map放入List中。
5. 最新的Spring框架提供了`@JsonComponent`注解,可以在需要的地方自动映射JSON到Java对象:
```java
//假设有个User类
@JsonComponent
public class User {
//...
}
List<User> userList = jsonService.parseUsersFromJson(jsonString); // 自动将JSON解析为User对象的列表
```
注意:以上所有示例都需要对应的依赖库支持。
阅读全文
相关推荐


















