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


当前回答

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

其他回答

var fs = require('fs');

fs.readFile('ashish.json',{encoding:'utf8'},function(data,err) {

   if(err) 
      throw err;

   else {

   console.log(data.toString());

 }
})

如果JSON源文件相当大,可以考虑通过Node.js 8.0的原生异步/ await方法实现异步路由,如下所示

const fs = require('fs')

const fsReadFile = (fileName) => {
    fileName = `${__dirname}/${fileName}`
    return new Promise((resolve, reject) => {
        fs.readFile(fileName, 'utf8', (error, data) => {
            if (!error && data) {
                resolve(data)
            } else {
                reject(error);
            }
        });
    })
}

async function parseJSON(fileName) {
    try {
        return JSON.parse(await fsReadFile(fileName));
    } catch (err) {
        return { Error: `Something has gone wrong: ${err}` };
    }
}

parseJSON('veryBigFile.json')
    .then(res => console.log(res))
    .catch(err => console.log(err))

您可以要求.json文件。

var parsedJSON = require('./file-name');

例如,如果你有一个配置。Json文件在相同的目录作为你的源代码文件,你会使用:

var config = require('./config.json');

或(文件扩展名可以省略):

var config = require('./config');

注意require是同步的,只读取文件一次,后续调用从缓存返回结果

还要注意,您应该只对完全控制下的本地文件使用此选项,因为它可能会执行文件中的任何代码。

NodeJs是一个基于JavaScript的服务器,所以你可以用纯JavaScript的方式来做…

想象一下你在NodeJs中有这个Json…

var details = '{ "name": "Alireza Dezfoolian", "netWorth": "$0" }';
var obj = JSON.parse(details);

你可以通过上面的操作来获得json的解析版本…

只是想完成答案(因为我挣扎了一段时间),想展示如何访问json信息,这个例子显示了访问json数组:

Var request = require('request'); 请求(“https://server/run?oper_get_groups_joined_by_user_id &user_id=5111298845048832',函数(错误,响应,body) { 如果(!错误&&响应。statusCode == 200) { var jsonArr = JSON.parse(body); console.log (jsonArr); console.log("group id:" + jsonArr[0].id); } })