想改进这个问题吗?通过编辑这篇文章来更新问题,使其仅关注一个问题。
2年前关闭。
社区上个月审查了是否重新打开这个问题并将其关闭:
未解决原始关闭原因
您可以简单地使用 .JSON.parse
对象的定义是 ECMAScript 5 规范的一部分。node.js 建立在 Google Chrome 的 V8 引擎上,该引擎符合 ECMA 标准。因此,node.js 也有一个全局对象 JSON
[docs]。JSON
注意 – 可以占用当前线程,因为它是同步方法。因此,如果您打算解析大型 JSON 对象,请使用流式 json 解析器。JSON.parse
可以要求使用 .json 文件。
var parsedJSON = require('./file-name');
例如,如果文件与源代码文件位于同一目录中,则可以使用:config.json
var config = require('./config.json');
或(文件扩展名可以省略):
var config = require('./config');
请注意,require
是同步的,并且只读取文件一次,以下调用从缓存返回结果
另请注意,应仅将其用于绝对控制下的本地文件,因为它可能会执行文件中的任何代码。
您可以使用 JSON.parse()。
你应该能够在任何兼容 ECMAScript 5 的 JavaScript 实现上使用该对象。构建 Node.js 的 V8 就是其中之一。JSON
注意:如果您使用 JSON 文件来存储敏感信息(例如密码),这是错误的方法。看看Heroku是如何做到的:https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application。了解您的平台是如何做到这一点的,并用于从代码中检索配置变量。
process.env
var str = '{ "name": "John Doe", "age": 42 }';
var obj = JSON.parse(str);
您必须使用模块执行一些文件操作。fs
var fs = require('fs');
fs.readFile('/path/to/file.json', 'utf8', function (err, data) {
if (err) throw err; // we'll not consider error handling for now
var obj = JSON.parse(data);
});
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('/path/to/file.json', 'utf8'));
require
您有时可以使用:require
var obj = require('path/to/file.json');
但是,出于以下几个原因,我不建议这样做:
require
是同步的。如果你有一个非常大的JSON文件,它会阻塞你的事件循环。您确实需要使用 .JSON.parse
fs.readFile
require
将仅读取文件一次。对同一文件的后续调用将返回缓存的副本。如果要读取不断更新的文件,这不是一个好主意。你可以使用黑客。但是在这一点上,简单地使用更容易。require
.json
fs
.json
require
认真地!使用 JSON.parse
。
load-json-file
模块如果您正在读取大量文件(并且如果您非常懒惰),则每次编写样板代码都会变得烦人。您可以使用该模块保存一些字符。.json
load-json-file
const loadJsonFile = require('load-json-file');
loadJsonFile('/path/to/file.json').then(json => {
// `json` contains the parsed object
});
let obj = loadJsonFile.sync('/path/to/file.json');
如果 JSON 内容通过网络流式传输,则需要使用流式处理 JSON 解析器。否则,它将占用您的处理器并阻塞您的事件循环,直到 JSON 内容完全流式传输。
NPM 中有很多可用的软件包。选择最适合您的。
如果您不确定传递给的任何内容是否是有效的 JSON,请确保将调用包含在块内。用户提供的 JSON 字符串可能会使您的应用程序崩溃,甚至可能导致安全漏洞。如果解析外部提供的 JSON,请确保完成错误处理。JSON.parse()
JSON.parse()
try/catch
模板简介:该模板名称为【 JavaScript 如何使用 Node.js 解析 JSON?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。