3

を使用してNode.jsでjsonファイルを読んでいますrequire("fs")

何かのようなもの:

var readJsonFromFile= function(fileLocation, callback){
      fs.readFile(fileLocation, 'utf8', function (err, data) {
          if (err) {
            return callback(err);
          }

          data = JSON.parse(data);
          callback(null,data);
    });
}

しかし、私は気づいたJSON.parse

  • コメントを許可しない// blaか、/* blaa */
  • キーを引用する必要があります。

これは技術的に正しいことはわかっていますが、上記を保証するために、頻繁に注釈が付けられたjsonファイルを消去する小さなライブラリが存在するかどうかを知りたいです。(いいえ、それは完全に些細な DIY ではありません//。有効な値の一部として考えてください。)

ありがとう

4

3 に答える 3

4

はい!この目的のために、Kyle Simpson による JSON.minify を使用します。

https://github.com/getify/JSON.minify

これは本格的な Node モジュールではありませんが、JSON のような構成ファイルなどをロードするのに非常に適しています。キーを引用符で囲む必要がありますが、コメントは許可されていることに注意してください。

var config = JSON.parse(JSON.minify(fs.readFileSync(configFileName, 'utf8')));
于 2012-08-02T19:43:24.050 に答える
2

HJSONは、これらすべての要件を満たしています。

  • NPMパッケージです
  • //コメントを処理できる
  • /* */コメントを処理できる
  • 引用符で囲まれていないキーを処理できます。

オンラインで試すことができます

サンプル テキスト:

{
  # specify rate in requests/second (because comments are helpful!)
  rate: 1000

  // prefer c-style comments?
  /* feeling old fashioned? */

  # did you notice that rate doesn't need quotes?
  hey: look ma, no quotes for strings either!

  # best of all
  notice: []
  anything: ?

  # yes, commas are optional!
}
于 2015-11-16T12:29:45.350 に答える
-1

JS-YAMLを使用して JSON ファイルを解析するだけです。YAML は JSON のスーパーセットであり、必要な機能をサポートしています。

設定ファイルで YAML 固有のものを使用したくない場合は、実際に使用する必要はありません。YAML パーサーを JSON パーサーとして使用するだけで、厄介な 3 つの問題 (コメント、引用符、末尾のコンマ) を修正できます。

YAML をプレーンな JSON に変換するコマンドライン ツールも付属しています。

~> echo "{ foo: 10, bar: [20, 30], }" | js-yaml -j /dev/stdin
{
  "foo": 10,
  "bar": [
    20,
    30
  ]
}
于 2013-01-29T07:24:02.933 に答える