parse-json

中文文档
8.3.0发布于 2025/04/09MITTypeScriptES Module近 30 天下载 5.4亿

Parse JSON with more helpful errors

原始使用文档
文档目录5 节
  1. Install
  2. Usage
  3. API
  4. parseJson(string, reviver?, filename?)
  5. JSONError

parse-json

Parse JSON with more helpful errors

Install

npm install parse-json

Usage

import parseJson, {JSONError} from 'parse-json';

const json = '{\n\t"foo": true,\n}';


JSON.parse(json);
/*
SyntaxError: Expected double-quoted property name in JSON at position 16 (line 3 column 1)
*/


parseJson(json);
/*
JSONError: Expected double-quoted property name in JSON at position 16 (line 3 column 1)

  1 | {
  2 |   "foo": true,
> 3 | }
    | ^
*/


parseJson(json, 'foo.json');
/*
JSONError: Expected double-quoted property name in JSON at position 16 (line 3 column 1) in foo.json

  1 | {
  2 |   "foo": true,
> 3 | }
    | ^
  fileName: 'foo.json',
  [cause]: SyntaxError: Expected double-quoted property name in JSON at position 16 (line 3 column 1)
      at JSON.parse (<anonymous>)
      at ...
*/


// You can also add the filename at a later point
try {
    parseJson(json);
} catch (error) {
    if (error instanceof JSONError) {
        error.fileName = 'foo.json';
    }

    throw error;
}
/*
JSONError: Expected double-quoted property name in JSON at position 16 (line 3 column 1) in foo.json

  1 | {
  2 |   "foo": true,
> 3 | }
    | ^

  fileName: 'foo.json',
  [cause]: SyntaxError: Expected double-quoted property name in JSON at position 16 (line 3 column 1)
      at JSON.parse (<anonymous>)
      at ...
*/

API

parseJson(string, reviver?, filename?)

Throws a JSONError when there is a parsing error.

string

Type: string

reviver

Type: Function

Prescribes how the value originally produced by parsing is transformed, before being returned. See JSON.parse docs for more.

filename

Type: string

The filename displayed in the error message.

JSONError

Exposed for instanceof checking.

fileName

Type: string

The filename displayed in the error message.

codeFrame

Type: string

The printable section of the JSON which produces the error.

rawCodeFrame

Type: string

The raw version of codeFrame without colors.

版本与发布记录

parse-json 共发布 22 个版本,首次发布于 2015/07/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
8.3.0latest2025/04/091.6 年前
8.2.02025/03/211.6 年前
8.1.02023/11/222 年前
8.0.12023/11/092 年前
8.0.02023/11/033 年前
7.1.12023/10/283 年前

关于 parse-json 的常见问题

parse-json 是什么?

Parse JSON with more helpful errors

如何安装 parse-json?

在项目目录运行 npm install parse-json,或使用 pnpm add / yarn add / bun add。

parse-json 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

parse-json 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

parse-json 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

parse-json 可以商用吗?

parse-json 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

parse-json 的下载量有多少?

根据 npm 官方下载统计,parse-json 在 2026/10/04 – 2026/11/02 这 30 天内被下载 541,226,905 次,日均约 18,040,897 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

parse-json 还在维护吗?

最新版本 8.3.0 发布于 2025/04/09(1.6 年前);至今共发布 22 个版本,其中过去 12 个月发布了 0 个;首次发布于 2015/07/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。