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

如何将嵌套数组格式的字符串参数转换为一维整数数组

实现方案

通用思路

核心分为两步处理:

  1. 先将字符串格式的嵌套数组反序列化为对应语言原生的嵌套数组/集合对象
  2. 对得到的嵌套结构做扁平化处理,最终输出一维整数数组

主流语言实现示例

JavaScript 实现

const inputStr = "[[201], [511], [3451]]";
// 第一步:反序列化字符串为嵌套数组
const nestedArr = JSON.parse(inputStr);
// 第二步:数组扁平化,嵌套层级更深可以传参数Infinity
const flatArr = nestedArr.flat();
console.log(flatArr); // 输出 [201, 511, 3451]

Python 实现

import json

input_str = "[[201], [511], [3451]]"
# 第一步:反序列化字符串为嵌套列表
nested_arr = json.loads(input_str)
# 第二步:列表推导式完成扁平化
flat_arr = [num for sublist in nested_arr for num in sublist]
print(flat_arr) # 输出 [201, 511, 3451]

如果需要处理任意深度的嵌套,可以用递归或者itertools.chain工具完成。

Java 实现

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

public class ArrayConvert {
    public static void main(String[] args) throws Exception {
        String inputStr = "[[201], [511], [3451]]";
        ObjectMapper mapper = new ObjectMapper();
        // 第一步:反序列化字符串为嵌套List
        List<List<Integer>> nestedList = mapper.readValue(inputStr, new TypeReference<List<List<Integer>>>() {});
        // 第二步:流处理完成扁平化
        List<Integer> flatList = nestedList.stream()
                .flatMap(List::stream)
                .collect(Collectors.toList());
        System.out.println(flatList); // 输出 [201, 511, 3451]
    }
}

不想引入第三方JSON库的场景,可以替换为JDK内置的javax.json包完成解析,后续逻辑一致。


注意:如果输入字符串存在格式不符合JSON规范的情况,需要先做格式校验或者增加异常捕获逻辑,避免反序列化直接报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:09:03