【问题标题】:Why is mongoexport producing malformed JSON? [duplicate]为什么 mongoexport 会生成格式错误的 JSON? [复制]
【发布时间】:2019-09-04 21:42:42
【问题描述】:

我导出了我的 mongo 收藏。但是在导入它们时,mongo 说它们是格式错误的 JSON。

Unexpected end of JSON input

通过我得到的 JSON 验证器输入数据。

Error: Parse error on line 14:
...17:33:54.726Z"   }} {    "_id": {        "$oid"
---------------------^
Expecting 'EOF', '}', ',', ']', got '{'
  1. 上面的 JSON 有什么问题?
  2. Mongo 会导出格式错误的 JSON 吗?

【问题讨论】:

  • 该格式实际上是用于“大”输出,您将从流中读取为“块”(基本上是 mongoimport 所做的)。如果您期待 "one hit file slurp"(不推荐),那么可以使用 --jsonArray 选项,这正是您想要的。

标签: json mongodb


【解决方案1】:

Mongoexport 生成 JSON 行,而不是单个 JSON 文件。 mongoexport 生成的每一行都是它自己的 JSON 文档。如果您将整个文件放在 JSON 验证器中,它会尝试验证多个 JSON 文档,就好像它是一个文件一样。

这和验证是一样的

{ "test": 1 }
{ "test": 2 }

(不是有效的单个 JSON 文档)

有时这种格式也称为JSONL

尝试单独验证 mongoexport 生成的每一行 JSON。

【讨论】:

  • 我从 MongoDB Compass 工具中得到了同样的错误。它说 MongoDB 导出的 JSON 无效并且包含错​​误。我将 JSON 通过单独的验证器进行完整性检查。
  • 使用 MongoDB Compass 我在 JSON 中的位置 1255 处收到此错误 Unexpected token N
  • 你能不能换个问题问这个?
猜你喜欢
  • 1970-01-01
  • 2022-11-19
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多