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

如何在Java中将指定JSON数组解析为字符串或数组并提取值?

嘿,我来帮你解决这个JSON数组解析的问题!你手里的是一个标准的JSON字符串数组,在Java里有好几种简单靠谱的方式把它解析成字符串集合或者数组,下面给你详细说说常用的几种方案:

方法一:用Jackson库(Spring项目常用)

Jackson是Java生态里非常流行的JSON处理库,很多Spring项目默认就集成了它,用法也很灵活。

如果是Maven项目,先在pom.xml里添加依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version> <!-- 建议使用最新稳定版 -->
</dependency>

然后编写解析代码:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;

public class JsonParser {
    public static void main(String[] args) {
        String jsonArrayStr = "[ \"black-chest-close.png\", \"diamond-chest-close.png\", \"gold-chest-close.png\", \"logo.png\", \"logo1.png\", \"ruby-chest-close.png\", \"sapphire-chest-close.png\" ]";
        
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            // 解析成List<String>
            List<String> imageList = objectMapper.readValue(jsonArrayStr, new TypeReference<List<String>>() {});
            System.out.println("解析后的List:" + imageList);
            
            // 或者直接解析成String数组
            String[] imageArray = objectMapper.readValue(jsonArrayStr, String[].class);
            System.out.println("解析后的数组:" + java.util.Arrays.toString(imageArray));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
方法二:用Gson库(Google出品,轻量易用)

Gson是Google开发的JSON处理库,API设计简洁直观,上手成本很低。

Maven依赖配置:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version> <!-- 建议使用最新稳定版 -->
</dependency>

解析代码示例:

import com.google.gson.Gson;
import java.util.List;

public class GsonParser {
    public static void main(String[] args) {
        String jsonArrayStr = "[ \"black-chest-close.png\", \"diamond-chest-close.png\", \"gold-chest-close.png\", \"logo.png\", \"logo1.png\", \"ruby-chest-close.png\", \"sapphire-chest-close.png\" ]";
        
        Gson gson = new Gson();
        // 解析成String数组
        String[] imageArray = gson.fromJson(jsonArrayStr, String[].class);
        System.out.println("解析后的数组:" + java.util.Arrays.toString(imageArray));
        
        // 解析成List<String>
        List<String> imageList = gson.fromJson(jsonArrayStr, new com.google.gson.reflect.TypeToken<List<String>>() {}.getType());
        System.out.println("解析后的List:" + imageList);
    }
}
方法三:用org.json库(轻量级原生风格)

如果你不想引入太重量级的库,org.json是个不错的选择,它的API更偏向于手动遍历JSON结构,适合简单场景。

Maven依赖配置:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20230618</version> <!-- 建议使用最新稳定版 -->
</dependency>

解析代码示例:

import org.json.JSONArray;
import java.util.ArrayList;
import java.util.List;

public class OrgJsonParser {
    public static void main(String[] args) {
        String jsonArrayStr = "[ \"black-chest-close.png\", \"diamond-chest-close.png\", \"gold-chest-close.png\", \"logo.png\", \"logo1.png\", \"ruby-chest-close.png\", \"sapphire-chest-close.png\" ]";
        
        try {
            JSONArray jsonArray = new JSONArray(jsonArrayStr);
            List<String> imageList = new ArrayList<>();
            String[] imageArray = new String[jsonArray.length()];
            
            // 遍历JSON数组,逐个提取字符串元素
            for (int i = 0; i < jsonArray.length(); i++) {
                String imageName = jsonArray.getString(i);
                imageList.add(imageName);
                imageArray[i] = imageName;
            }
            
            System.out.println("解析后的List:" + imageList);
            System.out.println("解析后的数组:" + java.util.Arrays.toString(imageArray));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

内容的提问来源于stack exchange,提问作者Сергей Переходов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:06:57