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

C#中如何动态修改JSON数组指定元素的特定值?

遍历JSON并修改特定元素,同时保留原有内容的解决方案

当然可以在遍历过程中修改特定值,写完后完整保留其他原有内容!不需要调整JSON结构也能搞定,不过我也会给你提个结构优化的小建议,让后续操作更顺手。

现有结构下的实现方法

你当前用dynamic反序列化的方式完全可行,只需要在遍历的时候判断CheckName,匹配到目标就修改对应的Times值,最后序列化回文件即可。其他未匹配的元素会原封不动保留。

示例代码如下:

string configPath = @"C:\Scripts\Config.json";
// 读取JSON文件内容
string configContent = File.ReadAllText(configPath);
// 反序列化为dynamic对象
dynamic configFile = JsonConvert.DeserializeObject(configContent);

// 遍历每个元素,修改目标值
foreach (var item in configFile)
{
    if (item.CheckName == "test2")
    {
        // 修改test2对应的第一个时间值,这里用当前时间做示例,你可以替换成需要的时间字符串
        item.Times[0] = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");
    }
    else if (item.CheckName == "test")
    {
        // 修改test对应的第一个时间值
        item.Times[0] = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");
    }
    // 其他元素不做修改,自动保留原有内容
}

// 序列化回JSON,用Formatting.Indented保证输出格式美观,和原文件结构一致
string updatedConfig = JsonConvert.SerializeObject(configFile, Formatting.Indented);
// 将修改后的内容写回磁盘
File.WriteAllText(configPath, updatedConfig);

结构优化建议(可选)

如果后续需要频繁通过CheckName定位元素(尤其是元素数量达到50+的时候),把JSON结构从数组改成以CheckName为键的对象会更高效,不需要每次都遍历整个集合。

调整后的JSON结构示例:

{
  "test2": {
    "Times": [ "0001-01-01T00:00:00", "2019-02-27T09:29:39.5654213" ]
  },
  "test": {
    "Times": [ "0001-01-01T00:00:00", "2019-02-27T09:29:39.574397" ]
  }
}

对应的修改代码会更简洁,直接通过键访问目标元素:

string configPath = @"C:\Scripts\Config.json";
string configContent = File.ReadAllText(configPath);
dynamic configFile = JsonConvert.DeserializeObject(configContent);

// 直接定位test2修改,无需遍历
configFile.test2.Times[0] = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");
// 直接定位test修改
configFile.test.Times[0] = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");

// 序列化并写回文件
string updatedConfig = JsonConvert.SerializeObject(configFile, Formatting.Indented);
File.WriteAllText(configPath, updatedConfig);

这个优化能大幅提升定位元素的效率,不过前提是你有权限修改JSON文件的结构。如果不能修改结构,第一种遍历修改的方式完全能满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:10:23