首页 > JavaScript >  JavaScript  如何使用 Node.js 解析 JSON?

 JavaScript  如何使用 Node.js 解析 JSON?

上一篇 下一篇

已关闭。这个问题需要更加集中。它目前不接受答案。

想改进这个问题吗?通过编辑这篇文章来更新问题,使其仅关注一个问题。

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


解析包含 JSON 数据的字符串

var str = '{ "name": "John Doe", "age": 42 }';
var obj = JSON.parse(str);

解析包含 JSON 数据的文件

您必须使用模块执行一些文件操作。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');

但是,出于以下几个原因,我不建议这样做:

  1. require是同步的。如果你有一个非常大的JSON文件,它会阻塞你的事件循环。您确实需要使用 .JSON.parsefs.readFile
  2. require仅读取文件一次。对同一文件的后续调用将返回缓存的副本。如果要读取不断更新的文件,这不是一个好主意。你可以使用黑客。但是在这一点上,简单地使用更容易。require.jsonfs
  3. 如果您的文件没有扩展名,则不会将文件的内容视为 JSON。.jsonrequire

认真地!使用 JSON.parse


load-json-file模块

如果您正在读取大量文件(并且如果您非常懒惰),则每次编写样板代码都会变得烦人。您可以使用该模块保存一些字符。.jsonload-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 解析器。否则,它将占用您的处理器并阻塞您的事件循环,直到 JSON 内容完全流式传输。

NPM 中有很多可用的软件包。选择最适合您的。


错误处理/安全性

如果您不确定传递给的任何内容是否是有效的 JSON,请确保将调用包含在块内。用户提供的 JSON 字符串可能会使您的应用程序崩溃,甚至可能导致安全漏洞。如果解析外部提供的 JSON,请确保完成错误处理。JSON.parse()JSON.parse()try/catch

模板简介:该模板名称为【 JavaScript  如何使用 Node.js 解析 JSON?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 262次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-09
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 html5 微信模板 响应式 企业网站 单页式简历模板 微信图片 微信素材 微信文章 自适应
您可能会喜欢的其他模板