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

Java如何提取JSON文件中多个对象的同名属性并存入ArrayList

解决方案

核心逻辑:你的JSON根节点为对象数组,区别于单对象JSON结构,先将完整JSON内容解析为数组结构,再遍历数组内的每个对象提取name属性存入ArrayList即可,以下是两种Java生态常用JSON库的实现方案:

方案1:使用Jackson实现(Java生态通用标准库)

Maven依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

实现代码

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

public class PortfolioNameExtractor {
    public static void main(String[] args) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        // 替换为你本地JSON文件的实际路径
        JsonNode rootArray = objectMapper.readTree(new File("C:\\your_path\\portfolio.json"));
        ArrayList<String> portfolioNames = new ArrayList<>();

        Iterator<JsonNode> nodeIterator = rootArray.iterator();
        while (nodeIterator.hasNext()) {
            JsonNode portfolioNode = nodeIterator.next();
            portfolioNames.add(portfolioNode.get("name").asText());
        }
        // 输出结果验证:[octoberportfolio, jasonportfolio]
        System.out.println(portfolioNames);
    }
}

方案2:使用Fastjson2实现(高性能JSON库,国内使用广泛)

Maven依赖

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.40</version>
</dependency>
<!-- 以下为文件读取工具依赖,可自行替换为原生JDK文件读取逻辑 -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

实现代码

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;

public class PortfolioNameExtractor {
    public static void main(String[] args) throws IOException {
        // 替换为你本地JSON文件的实际路径
        String jsonContent = FileUtils.readFileToString(new File("C:\\your_path\\portfolio.json"), StandardCharsets.UTF_8);
        JSONArray rootArray = JSON.parseArray(jsonContent);
        ArrayList<String> portfolioNames = new ArrayList<>();

        for (int i = 0; i < rootArray.size(); i++) {
            JSONObject portfolioObj = rootArray.getJSONObject(i);
            portfolioNames.add(portfolioObj.getString("name"));
        }
        // 输出结果验证:[octoberportfolio, jasonportfolio]
        System.out.println(portfolioNames);
    }
}

内容的提问来源于stack exchange,提问作者Wilhelmo Gutred

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:24:04