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

如何将API返回的二维数组格式字符串转换为Java数组?

解决API返回字符串转Java数组的问题

步骤1:修复不标准的JSON格式

你拿到的字符串存在末尾多余逗号的问题(比如第一个子数组的"1.28210000",和第二个子数组的"0"后面的逗号),这不符合标准JSON规范,会导致解析失败。可以先通过字符串替换处理:

String apiResponse = "你的API返回字符串";
// 替换掉数组元素末尾的逗号(匹配 ",]" 或 ",\n]" 这类情况)
String validJson = apiResponse.replaceAll(",\\s*]", "]");

步骤2:用Jackson解析为Java数组

Jackson是Java常用的JSON解析库,先确保项目中引入依赖(Maven为例):

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

然后编写解析代码:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonParser {
    public static void main(String[] args) throws Exception {
        String apiResponse = "[[1680373800000,\"1.27860000\",\"1.28210000\",],[1680374700000,\"1.27610000\",\"1.28000000\",\"0\"]]";
        String validJson = apiResponse.replaceAll(",\\s*]", "]");
        
        ObjectMapper mapper = new ObjectMapper();
        // 解析为Object二维数组,也可以根据需求定义具体类型的数组
        Object[][] result = mapper.readValue(validJson, Object[][].class);
        
        // 输出测试
        for (Object[] row : result) {
            for (Object item : row) {
                System.out.print(item + " ");
            }
            System.out.println();
        }
    }
}

步骤3:用Gson解析的替代方案

如果习惯用Gson,同样先处理JSON格式,再解析:
依赖(Maven):

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>

解析代码:

import com.google.gson.Gson;

public class GsonParser {
    public static void main(String[] args) {
        String apiResponse = "[[1680373800000,\"1.27860000\",\"1.28210000\",],[1680374700000,\"1.27610000\",\"1.28000000\",\"0\"]]";
        String validJson = apiResponse.replaceAll(",\\s*]", "]");
        
        Gson gson = new Gson();
        Object[][] result = gson.fromJson(validJson, Object[][].class);
        
        // 测试输出
        for (Object[] row : result) {
            for (Object item : row) {
                System.out.print(item + " ");
            }
            System.out.println();
        }
    }
}

说明

  • 如果需要更具体的类型(比如把数字转成Long或Double),可以定义对应的实体类或者使用Long[][]/String[][]等类型来接收,根据实际业务需求调整。
  • 修复JSON格式的正则表达式可以适配大多数末尾多余逗号的情况,如果API返回的格式有其他不规范的地方,可能需要调整正则或者手动处理。

内容的提问来源于stack exchange,提问作者Julian Isaac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:02:45