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

使用JSON.NET在.NET WinForms中生成双层嵌套列表JSON

解决JSON.NET生成双层括号列表的问题

首先明确:双层括号的列表嵌套完全符合JSON规范,JSON支持数组嵌套数组,所以你要的格式是合法的。

问题出在你的数据结构上——当前你给points字段赋值的是单层列表,所以序列化后只有单层括号。要生成双层括号,只需要确保points的类型是「列表的列表」,而不是普通列表,具体分两种情况处理:

1. 使用强类型/匿名类序列化

如果是用类来定义数据结构,把points的类型声明为嵌套列表,比如:

// 强类型示例
public class MyData
{
    public List<List<int>> Points { get; set; }
}

// 赋值时传入嵌套列表
var data = new MyData
{
    Points = new List<List<int>>
    {
        new List<int> { 10, 20, 30 } // 这里即使只有一个子列表,也是嵌套结构
    }
};

// 序列化
string json = JsonConvert.SerializeObject(data, Formatting.Indented);

这样生成的JSON里points字段就是[[10,20,30]],双层括号的格式。

如果用匿名类,写法类似:

var data = new
{
    points = new List<List<int>> { new List<int> { 5, 15, 25 } }
};
string json = JsonConvert.SerializeObject(data);

2. 手动构建JObject/JArray

如果是手动拼接JSON结构,要把points的值设为嵌套的JArray:

var pointsArray = new JArray(new JArray(1, 2, 3));
var jsonObj = new JObject { ["points"] = pointsArray };
string json = jsonObj.ToString(Formatting.Indented);

生成的结果同样是双层括号的格式。

总结一句话:只要你的数据结构本身是「列表包含列表」,JSON.NET就会自动生成双层括号的JSON格式,不需要额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:19:56