【问题标题】:Unexpected end of JSON input with MongoDB Compass使用 MongoDB Compass 意外结束 JSON 输入
【发布时间】:2019-03-17 10:55:23
【问题描述】:

我在我的电脑上使用 JSON 文件类型导出了我的 本地 MongoDB 集合。然后我想使用 MongoDB Compass 在我的根服务器上导入这些集合。

每次我尝试导出集合时,都会引发以下错误:

这就是我的 JSON 文件的样子:

{..."settings":{"inventory":{"crate":{"$numberInt":"0"},"cratekey":{"$numberInt":"0"},"pickaxe":{"$numberInt":"0"},...}

(我不知道回答这个问题是否相关,但这个 JSON 行只有 1/142000)

我该如何解决这个错误?

【问题讨论】:

    标签: json mongodb mongodb-compass


    【解决方案1】:

    TL;DR
    您需要在 json 文件的最底部有 1 个空行。

    加长版
    我不知道这是否会对您的情况有所帮助,但是在尝试导入 json 数据时遇到了类似的问题。我每行有 1 个文档,但还是有问题。然后我将类似的数据导出为 json,并尝试使用它来查看导致问题的原因。事实证明,json的底部必须有一个空行。因此,假设您有 1 个要导入的文档。您将整个文档放在第一行。然后您只需按 Enter 并在底部创建第二行。在此之后,我的数据导入没有问题。

    【讨论】:

    • 此链接上有一个“删除空白”按钮,可以为您缩小它:jsonviewer.stack.hu
    • @GaryVaughan 该问题与空格或缩小 json 无关。问题是 json 文件末尾缺少空行
    • 这对我来说听起来很奇怪,您需要在文件底部添加第二行。但我想如果你的 json 看起来像: {..."settings":{"inventory":{"crate":{"$numberInt":"0"},"cratekey":{"$numberInt":"0 "},"pickaxe":{"$numberInt":"0"},...} ,你可能会?请赐教,因为我想知道为什么我的进口从来没有遇到过这个问题,也从来没有听说过这个。
    • @GaryVaughan 我完全同意这是非常奇怪的行为,但这似乎只是 MongoDB Compass 的内部实现。导出数据时也出现了一个空行,因此当我将其删除并将其重新导入时,我收到了该错误。请注意,这是在一年前回答的,并且已经对 MongoDB Compass 进行了更新,因此可能会随着更新的版本而改变。我没有时间检查这是否已更改。
    • 你知道,我从来没有检查过 Compass。我通常进行导出并立即将其导入另一个数据库的另一个集合中。有趣...
    【解决方案2】:

    所以问题是你需要缩小你的 json 文件。那就是它应该在一行中。所以这里是网站的链接,您将在其中将您的 json 文档粘贴到左侧,并在右侧获取缩小的文档。它对我有用。我希望这对你也有帮助。 https://codebeautify.org/jsonminifier

    【讨论】:

      【解决方案3】:

      我遇到了完全相同的问题,显然它们应该是每行一个文档。 不过使用https://studio3t.com/ 就可以了。

      【讨论】:

      • 这不是问题的解决方案
      猜你喜欢
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2015-08-05
      • 2015-03-15
      • 2018-05-15
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多