You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何从BoredAPI返回的JSON数据中提取指定的activity字段?

实现方案

方案1:使用Gson库解析(推荐)

该方式稳定性高,不会因为JSON格式的换行、空格、字段顺序变化出现解析错误,是处理JSON的标准方案。

  • 第一步:引入Gson依赖,若使用Maven管理项目,在pom.xml中添加如下配置:
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>
  • 第二步:修改原有代码,增加JSON解析逻辑提取指定字段:
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

public class apiTest {
    public static void main(String[] args) {
        String ApiFRomData;
        try {
            URL url_name = new URL("https://www.boredapi.com/api/activity");
            BufferedReader sc = new BufferedReader(new InputStreamReader(url_name.openStream()));
            ApiFRomData = sc.readLine().trim();
            // 解析JSON提取activity字段
            JsonObject jsonObject = JsonParser.parseString(ApiFRomData).getAsJsonObject();
            String activityContent = jsonObject.get("activity").getAsString();
            System.out.println(activityContent);
        } catch (Exception e) {
            System.out.println("Cannot Execute Properly");
        }
    }
}

方案2:无第三方依赖的简易实现

如果不想额外引入依赖,且确认该接口返回的JSON格式长期固定,可以使用正则匹配提取字段,仅适合当前这类简单JSON场景:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class apiTest {
    public static void main(String[] args) {
        String ApiFRomData;
        try {
            URL url_name = new URL("https://www.boredapi.com/api/activity");
            BufferedReader sc = new BufferedReader(new InputStreamReader(url_name.openStream()));
            ApiFRomData = sc.readLine().trim();
            // 正则匹配activity字段的取值
            Pattern pattern = Pattern.compile("\"activity\"\\s*:\\s*\"([^\"]+)\"");
            Matcher matcher = pattern.matcher(ApiFRomData);
            if (matcher.find()) {
                System.out.println(matcher.group(1));
            } else {
                System.out.println("未找到activity字段");
            }
        } catch (Exception e) {
            System.out.println("Cannot Execute Properly");
        }
    }
}

内容的提问来源于stack exchange,提问作者coding ninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:54:01