我有一些JSON文件,我正在编写一个模式,该模式允许独立于其他部分编辑JSON对象的单个属性。例如:
foo.json:
{
"creation_timestamp": "1411210038.000000",
"description": "lorem ipsum.\ndolor sit amet.",
"version": 4
}
打开foo.json文件会显示以下内容:
lorem ipsum.
dolor sit amet.
将第一行修改为“foo bar”,并保存文件,结果是更新了
description
字段的foo.json
文件。{
"creation_timestamp": "1411210038.000000",
"description": "foo bar.\ndolor sit amet.",
"version": 4
}
什么是最佳策略? 我目前的尝试是这样的:
- 使用find-file打开JSON文件
- 从point-min到point-max创建一个不可见的覆盖层
- 解析JSON
- 在point-min处插入
description
属性的值,创建一个“视图” - 添加local-write-file hook和after-save hook
local-write-file
hook会删除“视图”,更新覆盖层中的JSON,并保存文件。 after-save
hook会重新创建“视图”,以便用户可以继续编辑。这种方法很啰嗦,而且容易出错。 有没有更好的方法来处理屏幕表示与磁盘表示不同的数据?