# @batterii/encode-object 中文文档

规范地址：https://npmcn.com/package/%40batterii/encode-object/

版本：2\.1\.1
npm 元数据更新时间：2026-03-17T22:50:31.356Z
中文译文更新时间：2026-11-07T18:17:48.537Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40batterii/encode-object
原文对照：https://npmcn.com/package/%40batterii/encode-object/?lang=original
项目主页：https://github.com/Batterii/encode-object#readme
源码仓库：https://github.com/Batterii/encode-object

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

- 包体积（解压后）：8 kB，14 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=8\.6
- 运行依赖：3 个
- 首次发布：2020-01-16T18:15:10.463Z
- 最新版本发布：2020-02-25T21:19:06.104Z
- 近 30 天下载量：15772（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

对象编码和解码工具

## 安装

```sh
npm install @batterii/encode-object
```

也可以使用：`pnpm add @batterii/encode-object`、`yarn add @batterii/encode-object`、`bun add @batterii/encode-object`

## README

# @ batterii/ 编码对象

此模块包含编码和解码的功能 JSON 可串行对象 [基数64url](https://base64.guru/standards/base64url),允许安全发送 作为 HTTP 头和 URI 组件.

已经有很多这样的模块了 但是在Batterii我们写了另一个 最终想打开一些依赖它的东西 所以我们 这个也是开源的 随便用吧,没什么特别的 关于它.

注意,虽然被编码的物体通常不能被人类读取,但这不能 他们被加密或签字 从他们那里读取数据是 简单如反转编码过程, 篡改它们同样简单 以不同的数据重复.

制作签名的代币,防止篡改、使用 [符号](https://www.npmjs.com/package/tokengrip) 换句话说.

## 使用量

```js
import { decodeObject, encodeObject } from '@batterii/encode-object';

const str = encodeObject({ foo: 'bar' } );

console.log(str);
// eyJmb28iOiJiYXIifQ

const obj = decodeObject(str);

console.log(obj);
// { foo: 'bar' }
```

除了平面对象和阵列外,顶层的JSON原始人也是 支持:

```js
console.log(decodeObject(encodeObject('some string')));
// some string

console.log(decodeObject(encodeObject(true)));
// true

console.log(decodeObject(encodeObject(false)));
// false

console.log(decodeObject(encodeObject(null)));
// null
```

## 处理错误

此软件包使用 [纳尼](https://www.npmjs.com/package/nani) 以定义以下错误类别:

-   `EncodeObjectError`: 这是所有其它错误的基准类 包,用于命名间隔.
    
-   `InvalidJsonError`: 如果编码的文本连接无效的 JSON 是 发送给 `decodeObject`。 。 。 .

## 常见问题

### @batterii/encode-object 是什么？

对象编码和解码工具

### 如何安装 @batterii/encode-object？

在项目目录运行 npm install @batterii/encode-object，或使用 pnpm add / yarn add / bun add。

### @batterii/encode-object 支持 TypeScript 吗？

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

### @batterii/encode-object 支持 ESM 还是 CommonJS？

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

### @batterii/encode-object 需要什么版本的 Node\.js？

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

### @batterii/encode-object 可以商用吗？

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

### @batterii/encode-object 的下载量有多少？

根据 npm 官方下载统计，@batterii/encode-object 在 2026/10/08 – 2026/11/06 这 30 天内被下载 15,772 次，日均约 526 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @batterii/encode-object 还在维护吗？

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

