3

そのため、クライアントから Node.JS サーバーに JSON データを受信して​​います。Mongoose を使用して、その json を MongoDB インスタンスに挿入したいと考えています。

JSON をそのまま挿入できます。これは単なるテキストであるため、うまく機能します。ただし、挿入する前に解析して、後で抽出したときにすべてがきれいになるようにしたいと考えています。

したがって、これは機能します:

wordStream.words.push(wordData);

そして、これはしません:

wordStream.words.push(JSON.parse(wordData));
  1. では、挿入前に JSON を解析する必要があるでしょうか?

  2. また、JSON を解析する必要がある場合、エラーをスローせずに解析するにはどうすればよいでしょうか? 解析する前に、すべてを二重引用符 "" で囲む必要があると思いますが、何らかの理由で、二重引用符で文字列を作成して解析すると、すべてが間違ったものになります。

JSONは次のとおりです。

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

そして、解析しようとするとエラー

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

アイデア?

4

1 に答える 1

1

では、挿入前に JSON を解析する必要があるでしょうか?

文字列を JSON オブジェクトに変換すると、後で MongoDB データベースでクエリを作成する必要があるときに役立ちます。

また、JSON を解析する必要がある場合、エラーをスローせずに解析するにはどうすればよいでしょうか? 解析する前に、すべてを二重引用符 "" で囲む必要があると思いますが、何らかの理由で、二重引用符で文字列を作成して解析すると、すべてが間違ったものになります。

JSON ドキュメントを受信して​​いません。JSON ドキュメントには、引用されたキーが含まれている必要があります。

あなたはできる:

  • 無効な JSON オブジェクトを認識するライブラリを使用します (使用しないでください)。
  • evalを使用します(これはセキュリティ上の問題なので、使用しないでください)。
  • 問題の原因を修正し、実際の JSON オブジェクトを作成します。これは難しくありません。ここでJSON 機能を確認できます。
于 2013-05-11T15:36:31.160 に答える