# json-parse-even-better-errors 中文文档

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

版本：6\.0\.0
npm 元数据更新时间：2026-09-09T20:10:55.617Z
中文译文更新时间：2026-11-05T14:48:33.249Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：10.2 kB，4 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：^22\.22\.2 \|\| ^24\.15\.0 \|\| \>=26\.0\.0
- 运行依赖：0 个
- 首次发布：2019-09-27T20:02:57.518Z
- 最新版本发布：2026-05-08T18:36:35.149Z
- 近 30 天下载量：457991348（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 1 个）

## 中文简介

JSON.parse 有错误的上下文信息

## 安装

```sh
npm install json-parse-even-better-errors
```

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

## README

# json-parse- even- better- errors (日语) (英语)

[`json-parse-even-better-errors`](https://github.com/npm/json-parse-even-better-errors) 是一个节点js 库,用于调出更好的错误 `JSON.parse()`, (中文(简体) ), 包括分析错误的背景和位置.

它还保留了JSON数据的新线和缩进样式,由 将它们放入对象或阵列中 `Symbol.for('indent')` 财务报告和审定财务报表 `Symbol.for('newline')` 属性.

## 安装

`$ npm install --save json-parse-even-better-errors`

## 目录

-   [示例](https://npmcn.com/package/json-parse-even-better-errors/#readme-example)
-   [特征](https://npmcn.com/package/json-parse-even-better-errors/#readme-features)
-   [捐款](https://npmcn.com/package/json-parse-even-better-errors/#readme-contributing)
-   [API 密码](https://npmcn.com/package/json-parse-even-better-errors/#readme-api)
    -   [`parse`](https://npmcn.com/package/json-parse-even-better-errors/#readme-parse)

### 示例

```javascript
const parseJson = require('json-parse-even-better-errors')

parseJson('"foo"') // returns the string 'foo'
parseJson('garbage') // more useful error message
parseJson.noExceptions('garbage') // returns undefined
```

### 特征

-   像JSON.parse, 但错误是更好的.
-   脱去一个主字节顺序标记,您有时会读取文件 .
-   有个 `noExceptions` 返回未定义而不是投掷的方法.
-   将新行字符附加到 `Symbol.for('newline')` 在对象和阵列上.
-   附加缩进字符 `Symbol.for('indent')` 在对象和阵列上.

## 缩进

要保存文件保存回磁盘时的缩进, 使用 `data[Symbol.for('indent')]` 作为第三个参数 `JSON.stringify`,以及 如果您想要保存窗口 `\r\n` 新行,替换 `\n` 字符输入 字符串为 `data[Symbol.for('newline')]`。 。 。 .

例如:

```js
const txt = await readFile('./package.json', 'utf8')
const data = parseJsonEvenBetterErrors(txt)
const indent = Symbol.for('indent')
const newline = Symbol.for('newline')
// .. do some stuff to the data ..
const string = JSON.stringify(data, null, data[indent]) + '\n'
const eolFixed = data[newline] === '\n' ? string
  : string.replace(/\n/g, data[newline])
await writeFile('./package.json', eolFixed)
```

缩进是通过查看初始值之间的空白来决定的 `{` 财务报告和审定财务报表 `[` 以及随之而来的角色。 如果你有很多怪事的话 不一致的缩进, 然后它不会跟踪 或给你任何方式 留着它。 这是错误还是特性可争论;)

### API 密码

#### `parse(txt, reviver = null, context = 20)`

就是这样 `JSON.parse`,但将包含一些更多信息,当 发生错误,并附加 `Symbol.for('indent')` 财务报告和审定财务报表 `Symbol.for('newline')` 在对象和阵列上。 丢出一个 `JSONParseError`。 。 。 .

#### `parse.noExceptions(txt, reviver = null)`

就是这样 `JSON.parse`,但会回来 `undefined` 而不是说 丢出一个错误.

#### `class JSONParseError(er, text, context = 20, caller = null)`

扩展 Java 脚本 `SyntaxError` 分类以解析消息并提供 更好的元数据.

传入内置出的错误 `JSON.parse`,文本为 解析,它会分析出 需要帮助的比特.

`context` 默认为 20.

设置 a `caller` 功能将内部执行细节从 堆栈跟踪。 打电话时 `parseJson`,这个设定为 `parseJson` 函数。 如果不设定,则构造者会自行默认,因此 堆栈跟踪将指向您调用的地方 `new JSONParseError`。 。 。 .

## 常见问题

### json-parse-even-better-errors 是什么？

JSON\.parse 有错误的上下文信息

### 如何安装 json-parse-even-better-errors？

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

### json-parse-even-better-errors 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/json-parse-even-better-errors 是否存在。

### json-parse-even-better-errors 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### json-parse-even-better-errors 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.22\.2 \|\| ^24\.15\.0 \|\| \>=26\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### json-parse-even-better-errors 可以商用吗？

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

### json-parse-even-better-errors 的下载量有多少？

根据 npm 官方下载统计，json-parse-even-better-errors 在 2026/10/05 – 2026/11/03 这 30 天内被下载 457,991,348 次，日均约 15,266,378 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### json-parse-even-better-errors 还在维护吗？

最新版本 6\.0\.0 发布于 2026/05/09（5 个月前）；至今共发布 12 个版本，其中过去 12 个月发布了 1 个；首次发布于 2019/09/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

