在插入到MongoDB之前,我应该parsingJSON数据吗?

所以,我从客户端接收一些JSON数据到我的Node.JS服务器。 我想使用Mongoose将该json插入到我的MongoDB实例中。

我可以按原样插入JSON,效果很好,因为它只是文本。 但是,我想在插入之前parsing它,以便稍后解压时它将会很好,很整齐。

所以,这工作:

wordStream.words.push(wordData); 

这不是:

 wordStream.words.push(JSON.parse(wordData)); 
  1. 那么,我应该甚至想要在插入之前parsingJSON?

  2. 如果我要parsingJSON,我该如何处理而不会抛出错误? 我需要把所有的东西都用双引号“”,我相信,在它parsing之前,但是由于某种原因,每当我用双引号加一个string并parsing它时,就会把所有的东西都弄错了。

这是JSON:

  { word: 'bundle', definitions: [ { definition: 'A group of objects held together by wrapping or tying.', partOfSpeech: 'noun' } ], urlSource: 'testurl', otherSource: '' } 

而我试图parsing的错误

 /Users/spence450/Documents/development/wordly-dev/wordly-server/node_modules/mongoose/lib/utils.js:409 throw err; ^ SyntaxError: Unexpected token o 

想法?

那么,我应该甚至想要在插入之前parsingJSON?

当你需要在MongoDB数据库中查询的时候,把string转换成JSON对象会对你有所帮助。

如果我要parsingJSON,我该如何处理而不会抛出错误? 我需要把所有的东西都用双引号“”,我相信,在它parsing之前,但是由于某种原因,每当我用双引号加一个string并parsing它时,就会把所有的东西都弄错了。

您没有收到JSON文件。 JSON文件必须包含引用的键。

您可以:

  • 使用识别无效JSON对象的库(请不要)
  • 使用eval (这是一个安全问题,所以不要这样做)
  • 修复问题的根源,创build真正的JSON对象。 这并不难,你可以在这里看到JSON特性