【问题标题】:'Unexpected end of JSON input''JSON 输入意外结束'
【发布时间】:2020-07-10 03:23:25
【问题描述】:

昨天它工作得很好,我没有收到这个错误。

尝试用这一行替换一堆东西,但我完全不明白为什么会发生这种情况。 我已经研究了一个小时,“JSON 输入意外结束”的所有结果与我正在做的事情并不完全匹配,而且我对 javascript 还很陌生。

导致它的行:

let userData = JSON.parse(fs.readFileSync(__dirname + '/Storage/userData.json', 'utf8'))

我还应该指出,在错误上方它说是什么导致它是“未定义:1”???所以这很奇怪。通常它会显示为 javascript 代码中的行,但不是,我必须搜索“at(某些脚本中的某些内容)”列表以查找导致它的行,我觉得它可能与JSON 本身而不是我的代码。

【问题讨论】:

  • ./Storage/userData.json 中的内容是什么样的?如果您可以将其包含在您的问题中,那可能会有所帮助。 (如果其中包含敏感信息,请确保对其中的数据进行匿名处理)
  • ./Storage/userData.json 中实际上没有任何内容,因为我正在调试,所以我将其全部删除。所以目前没有保存任何统计信息,它们应该在我启动机器人时自动生成,并且所有统计信息都应该设置为 1。
  • 好的,所以如果根本没有数据(空文件),那么您的 JSON 无效并且您看到的错误是有效的。您可以将 JSON.parse() 行包装在 try...catch 块中以避免遇到严重错误

标签: javascript json bots discord discord.js


【解决方案1】:

错误来自 ./Storage/userData.json 文件。你有一个空文件吗?如果是,请确保使用[] 保存它。有时,文件可能会因影响数据的代码错误而被清除。

【讨论】:

  • 我保存了带有 '[]' 的 json,它运行良好,非常感谢你,你的真正的救星!
  • Np,请记住这一点,以备将来意外结束 JSON 输入问题^^
  • 我可能会。
【解决方案2】:

当您的 .json 文件为空时会发生这种情况。这就是为什么我不建议在 .json 文件中对数据进行排序的原因,如果你大量编辑它,它有时会被完全清除。 要修复它,只需将{} 放入文件中,错误就会消失。不过,您的数据也会消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 2015-03-15
    • 2018-05-15
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多