下面是 "Java 从json提取数组并转化为list的操作方法" 的完整攻略:
在 Java 中使用 JSON 数据,我们需要导入相应的 JSON 解析库,这里我们以 JSON-java 为例。 在 Maven 项目中添加以下依赖即可:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
首先,需要从 JSON 字符串中提取出数组。我们可以使用 JSON-java 库的 JSONArray
类来完成。以下是一个示例代码:
import org.json.JSONArray;
import org.json.JSONObject;
...
String jsonStr = "{\"name\":\"小明\",\"age\":20,\"courses\":[\"语文\",\"数学\",\"英语\"]}";
JSONObject obj = new JSONObject(jsonStr);
JSONArray courses = obj.getJSONArray("courses");
在这个例子中,我们通过传递字符串生成一个 JSONObject
对象。getJSONArray()
方法允许我们从此对象中获取 courses
数组。得到的JSONArray
对象可以被转换为 Java 中的 List
对象。
为了把 JSONArray
转换成 Java 中的 List
,我们需要使用 Gson
解析库,这是 Google 的一个库,用于将 Java 对象转换为 JSON 字符串并反序列化 JSON 字符串到 Java 对象。 这里我们需要添加 Gson
库的依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
接下来就是例子:
import com.google.gson.Gson;
...
String jsonStr = "[\"语文\",\"数学\",\"英语\"]";
Gson gson = new Gson();
List<String> courses = gson.fromJson(jsonStr, new TypeToken<List<String>>(){}.getType());
在这个例子中,我们直接用字符串来生成 JSONArray
对象,然后使用 Gson
将其转换成 Java 中的 List<String>
对象。
注意:当程序中提取出的 JSON 对象是嵌套的 JSON 对象,而不是仅仅包含了 JSON 数组时,该方法并不适用,因为该方法只适用于简单的一维数组。需要使用递归的方式来解析多层嵌套的 JSON 对象。