C# 反序列化JSON字符串前如何修改其中的DateTime值并增加2天
实现方案
你可以通过将JSON字符串先解析为JObject修改字段值,再反序列化为目标实体的方式实现,步骤如下:
- 先引入所需命名空间
using Newtonsoft.Json.Linq;
- 原有读取JSON字符串的代码保持不变,替换后续反序列化逻辑即可:
// 解析原始JSON为JObject JObject jsonObj = JObject.Parse(value); // 解析time_date字段值,加2天后回写 if (DateTime.TryParse(jsonObj["time_date"]?.ToString(), out DateTime originalTime)) { jsonObj["time_date"] = originalTime.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss"); } // 再将修改后的JObject反序列化为目标实体 authResponse = jsonObj.ToObject<Class1.Response>();
注意事项
- 如果你后续需要在
Response实体中使用修改后的time_date值,需要给Response类添加对应属性:
public string time_date { get; set; }
- 上述代码用
TryParse处理时间解析逻辑,可避免因时间格式异常导致程序报错,适合生产环境使用。
内容的提问来源于stack exchange,提问作者Jodie Calussi
相关产品推荐
相关产品推荐

