微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何更改 json 文件中的对象属性

如何解决如何更改 json 文件中的对象属性

我有一个名为 data.json 的巨大 JSON 文件,其中填充了具有相同属性的对象。 一个对象的示例是这样的:

  {
    "directory": "directory_here","posted": false,"date": null
  }

在我的脚本中,我使用 fs.readFile 读取 data.json 文件,如果posted 为false,如果它运行一些函数,然后将posted 更改为true,并将date 从null 更改为当前日期。所以我需要更改 data.json 文件中的属性。我该怎么做?

解决方法

这里arr是对象数组

arr.forEach((obj)=>{
  if(!obj.posted) obj.posted = true;
  if(!obj.date) obj.date = new Date()
})
,

除了少数病理情况外,您无法直接编辑 JSON 文本文件的内容。相反,您需要要么(a)读取-修改-写入数据,或者(b)切换到不同的存储格式, 确实允许就地编辑。

如果您(必须)坚持使用 JSON,您有两个主要选择:

  1. 分块读取文件,随时解析为 JSON。当你得到一个完整的对象时,根据需要修改它,然后将它写入一个文件。读完整个文件,写完所有对象后,就可以用新创建的文件替换原来的文件了。

  2. 读取整个文件并将其解析为对象数组。对所有对象进行必要的更改,然后将整个数组(以 JSON 格式)写入原始文件的顶部。 (或者,为了更加安全,您可以写入一个新文件并在没有问题的情况下替换原始文件)。

第二种方法可能更容易编写,但会消耗更多内存。

一种可能的替代方法(我怀疑这不适合您的情况)是切换到确实允许就地编辑的存储格式。这可以是固定记录长度记录的文件,或者类似 SQLite 数据库的文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?