我应该如何使用Node.js解析JSON ?是否有一些模块可以安全地验证和解析JSON ?


当前回答

这很简单,你可以使用JSON.stringify(json_obj)将JSON转换为字符串,并使用JSON将字符串转换为JSON。解析(“你的json字符串”)。

其他回答

包括node-fs库。

var fs = require("fs");
var file = JSON.parse(fs.readFileSync("./PATH/data.json", "utf8"));

有关'fs'库的更多信息,请参阅http://nodejs.org/api/fs.html的文档

如果你想在你的JSON中添加一些注释,并允许尾随逗号,你可能想使用下面的实现:

var fs = require('fs');

var data = parseJsData('./message.json');

console.log('[INFO] data:', data);

function parseJsData(filename) {
    var json = fs.readFileSync(filename, 'utf8')
        .replace(/\s*\/\/.+/g, '')
        .replace(/,(\s*\})/g, '}')
    ;
    return JSON.parse(json);
}

注意,如果JSON中有"abc": "foo // bar"这样的东西,它可能无法正常工作。所以YMMV。

解析JSON流?使用JSONStream。

var request = require('request')
  , JSONStream = require('JSONStream')

request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
    .pipe(JSONStream.parse('rows.*'))
    .pipe(es.mapSync(function (data) {
      return data
    }))

https://github.com/dominictarr/JSONStream

这很简单,你可以使用JSON.stringify(json_obj)将JSON转换为字符串,并使用JSON将字符串转换为JSON。解析(“你的json字符串”)。

不需要其他模块。 只使用 var parsedObj = JSON.parse(yourObj); 我不认为这有任何安全问题