我应该如何使用Node.js解析JSON ?是否有一些模块可以安全地验证和解析JSON ?
当前回答
我想提一下全局JSON对象的替代方案。 JSON。解析和JSON。stringify都是同步的,所以如果你想处理大对象,你可能想查看一些异步JSON模块。
看看:https://github.com/joyent/node/wiki/Modules#wiki-parsers-json
其他回答
我的解决方案:
var fs = require('fs');
var file = __dirname + '/config.json';
fs.readFile(file, 'utf8', function (err, data) {
if (err) {
console.log('Error: ' + err);
return;
}
data = JSON.parse(data);
console.dir(data);
});
使用JSON.parse (str);。点击这里阅读更多信息。
下面是一些例子:
var jsonStr = '{"result":true, "count":42}';
obj = JSON.parse(jsonStr);
console.log(obj.count); // expected output: 42
console.log(obj.result); // expected output: true
JSON.parse("your string");
这是所有。
只是为了让这个问题尽可能复杂,并引入尽可能多的包……
const fs = require('fs');
const bluebird = require('bluebird');
const _ = require('lodash');
const readTextFile = _.partial(bluebird.promisify(fs.readFile), _, {encoding:'utf8',flag:'r'});
const readJsonFile = filename => readTextFile(filename).then(JSON.parse);
这让你做:
var dataPromise = readJsonFile("foo.json");
dataPromise.then(console.log);
或者如果你使用async/await:
let data = await readJsonFile("foo.json");
与仅使用readFileSync相比的优点是,在从磁盘读取文件时,Node服务器可以处理其他请求。
只是想完成答案(因为我挣扎了一段时间),想展示如何访问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); } })