# parse-json 中文文档

规范地址：https://npmcn.com/package/parse-json/

版本：8\.3\.0
npm 元数据更新时间：2025-04-09T09:02:03.484Z
中文译文更新时间：2026-11-05T01:28:15.204Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/parse-json
原文对照：https://npmcn.com/package/parse-json/?lang=original
项目主页：https://github.com/sindresorhus/parse-json#readme
源码仓库：https://github.com/sindresorhus/parse-json

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：3 个
- 首次发布：2015-07-28T19:05:09.989Z
- 最新版本发布：2025-04-09T09:02:03.317Z
- 近 30 天下载量：541226905（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 0 个）

## 中文简介

使用更多有用的错误解析JSON

## 安装

```sh
npm install parse-json
```

也可以使用：`pnpm add parse-json`、`yarn add parse-json`、`bun add parse-json`

## README

# 解析json

> 使用更多有用的错误解析JSON

## 安装

```sh
npm install parse-json
```

## 用法

```js
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(字符串,兴奋剂?,文件名?)

抛出一个 `JSONError` 当出现解析错误时。

#### 字符串

类型: `string`

#### 兴奋剂

类型: `Function`

规定在返回之前如何转换解析最初产生的值。看到 [`JSON.parse` 文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter) 更多信息。

#### 文件名

类型: `string`

错误消息中显示的文件名。

### JSONError

暴露在 `instanceof` 检查。

#### 文件名

类型: `string`

错误消息中显示的文件名。

#### codeFrame

类型: `string`

JSON中产生错误的可打印部分。

#### rawCodeFrame

类型: `string`

原始版本的 `codeFrame` 没有颜色。

## 常见问题

### parse-json 是什么？

使用更多有用的错误解析JSON

### 如何安装 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 和提交记录判断。

