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

如何填充List并添加{dt,accumulated,state}数据后输出JSON格式

解决方案

1. 初始化并填充intervalo列表

ArrayObjectClass中的intervalo是List<ObjectsClass>类型,默认值为null,必须先初始化才能使用,有两种常用方式:

  • 手动初始化(实例创建后)
var lista = new ArrayObjectClass();
lista.intervalo = new List<ObjectsClass>(); // 初始化空列表
  • 自动初始化(类构造函数中)
    修改ArrayObjectClass类,在构造函数中完成列表初始化,后续创建实例时无需手动赋值:
public class ArrayObjectClass
{
    public List<ObjectsClass> intervalo { get; set; }
    
    public ArrayObjectClass()
    {
        intervalo = new List<ObjectsClass>();
    }
}

2. 向列表添加数据

初始化后,可通过单个添加或批量添加的方式插入ObjectsClass实例:

  • 单个添加
var singleObj = new ObjectsClass
{
    dt = DateTime.Now,
    accumulated = 123.45,
    state = 1
};
lista.intervalo.Add(singleObj);
  • 批量添加
var batchObjs = new List<ObjectsClass>
{
    new ObjectsClass { dt = DateTime.Parse("2024-01-01"), accumulated = 50.0, state = 0 },
    new ObjectsClass { dt = DateTime.Parse("2024-01-02"), accumulated = 150.0, state = 1 }
};
lista.intervalo.AddRange(batchObjs);

3. 格式化JSON输出

无需先序列化再解析,直接在JsonConvert.SerializeObject中指定Formatting.Indented参数,即可生成带缩进的格式化JSON:

var formattedJson = JsonConvert.SerializeObject(lista, Newtonsoft.Json.Formatting.Indented);
formattedJson.Dump();

完整可运行代码

public class ObjectsClass
{
    public DateTime dt { get; set; }    
    public double accumulated { get; set; } 
    public int state { get; set; }
}

public class ArrayObjectClass
{
    public List<ObjectsClass> intervalo { get; set; }
    
    public ArrayObjectClass()
    {
        intervalo = new List<ObjectsClass>();
    }
}

void Main()
{
    var lista = new ArrayObjectClass();
    
    // 添加单条数据
    lista.intervalo.Add(new ObjectsClass
    {
        dt = DateTime.Now,
        accumulated = 123.45,
        state = 1
    });
    
    // 批量添加数据
    lista.intervalo.AddRange(new List<ObjectsClass>
    {
        new ObjectsClass { dt = new DateTime(2024, 5, 1), accumulated = 50.0, state = 0 },
        new ObjectsClass { dt = new DateTime(2024, 5, 2), accumulated = 150.0, state = 1 }
    });
    
    // 输出格式化JSON
    var formattedJson = JsonConvert.SerializeObject(lista, Newtonsoft.Json.Formatting.Indented);
    formattedJson.Dump();
}

注意事项

  • 确保项目已引用Newtonsoft.Json(Json.NET)库,否则JsonConvert相关API会报错。
  • 若需自定义DateTime的序列化格式,可通过JsonConverter进行配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:45:35