hutool
是一个 Java 工具包,它提供了很多实用的功能,包括 JSON 的处理。在 hutool
中,你可以使用 cn.hutool.json.JSONUtil
类来解析和处理 JSON 数据。如果你想要获取 JSON 中的数组(JSONArray
),并遍历读取其中的值(无论是基本类型还是对象),你可以按照以下步骤操作:
首先,确保你的项目中已经引入了 hutool-all
的依赖。如果你使用 Maven,可以在 pom.xml
文件中添加如下依赖:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>你的hutool版本号</version> </dependency>
然后,你可以使用 JSONUtil
来解析 JSON 字符串,并使用 getJSONArray
方法来获取数组,接着遍历数组并读取其中的值。
以下是一个示例代码:
假设你有以下JSON数据:
{ "name": "John Doe", "age": 30, "hobbies": [ "reading", "swimming", { "name": "traveling", "frequency": "often" } ] }
在这个JSON中,hobbies
是一个数组,它包含了字符串和对象。以下是如何使用hutool库来解析这个数组并读取其内容:
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; public class HutoolJsonExample { public static void main(String[] args) { String jsonString = "{\n" + " \"name\": \"John Doe\",\n" + " \"age\": 30,\n" + " \"hobbies\": [\n" + " \"reading\",\n" + " \"swimming\",\n" + " {\n" + " \"name\": \"traveling\",\n" + " \"frequency\": \"often\"\n" + " }\n" + " ]\n" + "}"; // 使用 JSONUtil 解析 JSON 字符串为 JSONObject JSONObject jsonObject = JSONUtil.parseObj(jsonString); // 获取 hobbies 数组 JSONArray hobbiesArray = jsonObject.getJSONArray("hobbies"); // 遍历 hobbies 数组 for (int i = 0; i < hobbiesArray.size(); i++) { // 判断数组中的元素是 JSONObject 还是 String if (hobbiesArray.get(i) instanceof JSONObject) { // 如果是 JSONObject,则转换为 JSONObject 并读取值 JSONObject hobbyObject = hobbiesArray.getJSONObject(i); String hobbyName = hobbyObject.getStr("name"); String frequency = hobbyObject.getStr("frequency"); System.out.println("Hobby Name: " + hobbyName + ", Frequency: " + frequency); } else if (hobbiesArray.get(i) instanceof String) { // 如果是 String,则直接读取 String hobby = hobbiesArray.getStr(i); System.out.println("Hobby: " + hobby); } } } }
注意:在 hutool
的 JSONUtil
中,你可以使用 getStr
方法来安全地获取字符串值,如果值为 null
,则默认返回空字符串。同样,对于其他类型(如整数、布尔值等),JSONUtil
也提供了相应的方法来安全地获取值。
标签:getJSONArray,String,JSONObject,JSONUtil,List,hutool,JSON,数组 From: https://www.cnblogs.com/isme-zjh/p/18216131