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

如何在Go中复现指定的Javascript多层嵌套数组结构

Go 对等JS三层嵌套数组的实现方案

你给出的JS代码是三层嵌套的动态数组结构,对应Go中可以使用三层切片实现,序列化后的JSON和预期完全一致。

直接初始化匹配结构的代码

如果要和你示例的JS结构完全对齐(外层2个元素,每个元素包含5个空的内层数组),可以直接按如下方式定义:

// 最内层元素类型可根据实际业务替换,示例用interface{}兼容任意类型数据
var goSlice = [][][]interface{}{
    {{}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}},
}

完整测试验证代码

可以运行以下代码验证JSON序列化结果是否符合预期:

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// 初始化三层切片结构
	goSlice := [][][]interface{}{
		make([][]interface{}, 5), // 第一层第一个元素,包含5个空切片
		make([][]interface{}, 5), // 第一层第二个元素,包含5个空切片
	}

	// 序列化输出JSON
	res, err := json.Marshal(goSlice)
	if err != nil {
		fmt.Println("序列化失败:", err)
		return
	}
	fmt.Println(string(res))
}

运行输出结果:

[[[],[],[],[],[]],[[],[],[],[],[]]]

补充说明

  • 如果最内层数组存储的是固定类型的数据,比如字符串、整数,可以把interface{}替换为对应类型,比如[][][]int,类型更安全,序列化结果不变。
  • 如果你需要长度不可变的定长结构,也可以用数组定义:var goArr [2][5][]int,序列化后输出结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:27:05