如何为大型JSON文件的所有date字段添加864000000(10天)时间戳?
批量给JSON中所有date字段值增加10天(864000000毫秒)的实现方案
一、使用VSCode实现
- 打开目标JSON文件,按下
Ctrl+Shift+H(Windows/Linux)或Cmd+Shift+H(Mac)唤起全局替换面板 - 点击面板中的「正则表达式」按钮(图标为
.*),启用正则匹配模式 - 在查找内容框输入:
"date": (\d+) - 在替换为框输入:
"date": $${parseInt($1) + 864000000} - 点击「替换全部」按钮,所有date字段的数值会自动加上864000000
执行前建议备份原JSON文件,避免意外修改
二、使用JSONEditor实现
方法1:正则替换(代码视图)
- 打开JSONEditor,导入目标JSON文件,切换到「代码视图」
- 按下
Ctrl+F唤起查找替换面板,启用正则表达式模式 - 查找内容输入:
"date": (\d+) - 替换内容输入:
"date": $${parseInt($1) + 864000000}(部分版本需启用脚本替换功能) - 点击「全部替换」完成修改,导出文件
方法2:批量编辑脚本
- 加载JSON文件后,打开内置控制台(或「工具」→「脚本编辑器」)
- 输入以下JavaScript脚本并执行:
function updateDates(obj) { for (const key in obj) { if (key === 'date' && typeof obj[key] === 'number') { obj[key] += 864000000; } else if (typeof obj[key] === 'object' && obj[key] !== null) { updateDates(obj[key]); } } } updateDates(json); // json为JSONEditor当前加载的对象
- 保存修改后的JSON文件
三、使用简易Dart代码实现
创建一个update_dates.dart文件,写入以下代码:
import 'dart:convert'; import 'dart:io'; void main() async { // 读取目标JSON文件 final file = File('your_target_file.json'); final jsonContent = await file.readAsString(); Map<String, dynamic> data = jsonDecode(jsonContent); // 递归遍历并修改所有date字段 void traverseAndUpdate(dynamic item) { if (item is Map) { item.forEach((key, value) { if (key == 'date' && value is int) { item[key] = value + 864000000; } else { traverseAndUpdate(value); } }); } else if (item is List) { for (var element in item) { traverseAndUpdate(element); } } } traverseAndUpdate(data); // 写入修改后的内容 await file.writeAsString(jsonEncode(data)); print('所有date字段已成功更新'); }
- 将代码中的
your_target_file.json替换为实际的JSON文件路径 - 在终端执行命令:
dart run update_dates.dart - 执行完成后,原文件的所有date字段值会增加864000000
内容的提问来源于stack exchange,提问作者David L
相关产品推荐
相关产品推荐

