MongoDB Compass中的JSON输入意外结束

时间:2019-05-15 13:55:10

标签: json mongodb

我想在MongoDB指南针中导入json类型的数据, 导入功能给出此错误 “ json输入意外结束”

enter image description here

有一些我的json文件

[

    {
    'id' :4,
    'user' : 'test@example.com',
    'date1' :'2019-03-01',
    'date2' : '2019-04-01',
    'statut' : 'Good',
     'guest_number' : 4
    }
]

12 个答案:

答案 0 :(得分:2)

像这样的缩小对我有用。

{ 
    "_id" : ObjectId("5b9ecf9a64f634289ca895bb"), 
    "name" : "Mark"
}
{ 
    "_id" : ObjectId("5b9edd9064f634289ca895e4"), 
    "name" : "David"
}

收件人:

{"_id":"ObjectId(\"5b9ecf9a64f634289ca895bb\")","name":"Mark"}
{"_id":"ObjectId(\"5b9edd9064f634289ca895e4\")","name":"David"}

答案 1 :(得分:2)

只需复制json文件的内容,然后在Mongodb Compass中选择数据库,然后单击Add Data(添加数据),该数据将下拉,然后单击Insert Document(插入文档),弹出一个对话框,然后将其粘贴在其中,然后单击Insert(插入)。

答案 2 :(得分:1)

您的JSON结构不正确,您可能想阅读有关JSON standards

的信息
  

值可以是双引号中的字符串,也可以是数字,也可以是true或false或null,或者是对象或数组。这些结构可以嵌套。

尝试使用双引号而不是单引号:

JSON验证程序也可以帮助您

[
    {
     "id" : 4,
     "user" : "test@example.com",
     "date1" : "2019-03-01",
     "date2" : "2019-04-01",
     "statut" : "Good",
     "guest_number" : 4
    }
]

答案 3 :(得分:1)

缩小json

{
"_id" : "123456",
"name" :  "stackoverflow"
}

更改为:

{"_id":"123456","name":"stackoverflow"}

答案 4 :(得分:1)

这是行尾字符(EOL)的问题。

在Windows环境中,线路终止通常为CR NL(\ r \ n),而MongoDB Compass似乎仅支持CR(\ r)。

您可以在Notepad ++中打开文件,启用工具栏中的“显示所有字符”开关,然后检查当前行尾字符。

要解决此问题,请选择“编辑”>“ EOL转换”>“ Macintosh(CR)”。

答案 5 :(得分:0)

6个月前,我遇到了这个问题,解决方案是将所有JSON写在一行中。 [{"id":4,"user":"test@example.com","date1":"2019-03-01","date2":"2019-04-01","statut":"Good","guest_number":4}]

MongoDB Compass会告诉您:

  

导入成功!

但是该文档肯定不会出现在您的收藏夹中,因此,如果您要插入json,最好使用Robo3T。然后,您可以像我一样再次使用指南针。 很奇怪,是的,但是我还没有找到其他解决方案。

答案 6 :(得分:0)

解决方案是将所有JSON写在一行中,但是如果我们有一个大型文档!! 我刚刚找到了一种解决方案,可以在终端中使用此命令导入数据:

mongoimport --jsonArray --db YourDatabase --collection YourCollection --file Yourfile.json

答案 7 :(得分:0)

您还可以像这样使用mongodb的命令行:

db.user.insert(
[
    {
     "id" : 4,
     "user" : "test@example.com",
     "date1" : "2019-03-01",
     "date2" : "2019-04-01",
     "statut" : "Good",
     "guest_number" : 4
    },
    {
     "id" : 5,
     "user" : "test2@example.com",
     "date1" : "2019-03-01",
     "date2" : "2019-04-01",
     "statut" : "Good",
     "guest_number" : 4
    }
]

答案 8 :(得分:0)

我有一个类似的问题,但事实证明是文件末尾的其他换行符。删除这些可解决问题。我建议在显示换行符的编辑器中打开文件,例如记事本++

答案 9 :(得分:0)

这里的答案Solution为我解决了这个问题。看来是格式问题。

答案 10 :(得分:0)

--jsonFormat=canonical添加到mongoexport脚本中:

mongoexport --db=quotes --collection=quotes  --jsonFormat=canonical --out=data/quotes.json

JSON仅可以直接表示BSON支持的类型的子集。为了保留类型信息,MongoDB将以下扩展名添加到JSON格式。

Source

答案 11 :(得分:-1)

在cmd中运行此命令,cmd路径应位于JSON文件所在的文件夹中。

mongoimport --jsonArray --db YourDatabase --collection YourCollection --file Yourfile.json