# @bonniernews/json-autocomplete 中文文档

规范地址：https://npmcn.com/package/%40bonniernews/json-autocomplete/

版本：0\.0\.15
npm 元数据更新时间：2026-08-26T12:06:50.633Z
中文译文更新时间：2026-11-08T11:03:13.598Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：31.3 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2024-12-12T08:26:19.045Z
- 最新版本发布：2025-11-24T15:47:13.207Z
- 近 30 天下载量：3575（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 1 个）

## 中文简介

完成不完全的 JSON 字符串与缓存相容

## 安装

```sh
npm install @bonniernews/json-autocomplete
```

也可以使用：`pnpm add @bonniernews/json-autocomplete`、`yarn add @bonniernews/json-autocomplete`、`bun add @bonniernews/json-autocomplete`

## README

# JSON 自动完成

![npm](https://img.shields.io/npm/v/@bonniernews/json-autocomplete) ![License](https://img.shields.io/npm/l/@bonniernews/json-autocomplete) ![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)

从可能不完整的有缓存能力的JSON附件操作中逐步构建并完成JSON字符串的功能. 适合现代LLM应用,应该流出json输出. 完美地结合了OpenAI的聊天完成API.

## 目录

-   [特征](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-features)
-   [安装](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-installation)
-   [使用量](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-usage)
    -   [基本示例](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-basic-example)
    -   [使用 `jsonAutocomplete` 帮助](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-using-jsonautocomplete-helper)
-   [API 参考](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-api-reference)
    -   [`createJsonAutocomplete()`](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-createjsonautocomplete)
    -   [`jsonAutocomplete`](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-jsonautocomplete)
-   [捐款](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-license)
-   [支助](https://npmcn.com/package/%40bonniernews/json-autocomplete/#readme-support)

## 特征

-   **递增建筑物**: 递增添加 JSON 字符串的部分并获得尽可能有效的 JSON.
-   **字符串处理**:正确处理字符串,逃出字符,和嵌入结构.
-   **检查出错**: 检测出不平衡的括号和括号.
-   **缓存能力**:高效地管理内部状态以优化性能.

## 安装

您可以安装 **JSON 自动完成** 通过 [无](https://www.npmjs.com/) 或者说 [雅伦](https://yarnpkg.com/)数字 :

```bash
# Using npm
npm install @bonniernews/json-autocomplete

# Using Yarn
yarn add @bonniernews/json-autocomplete
```

## 使用量

### 基本示例

```typescript
import { createJsonAutocomplete } from "@bonniernews/json-autocomplete";

// Create a new autocompleter instance
const autocompleter = createJsonAutocomplete();

// Append incomplete JSON fragments
const part1 = '{"name": "Alice", "age": 30';
const completed1 = autocompleter.append(part1);
console.log(completed1); // Outputs: {"name": "Alice", "age": 30}

const part2 = ', "address": {"street": "123 Main St';
const completed2 = autocompleter.append(part2);
console.log(completed2); // Outputs: {"name": "Alice", "age": 30, "address": {"street": "123 Main St"}}

const part3 = '", "city": "Wonderland"}}';
const completed3 = autocompleter.append(part3);
console.log(completed3); // Outputs: {"name": "Alice", "age": 30, "address": {"street": "123 Main St", "city": "Wonderland"}}
```

### 使用 `jsonAutocomplete` 帮助

为了更简单的使用,您可以使用 `jsonAutocomplete` 内部管理自动补全实例的助手函数.

```typescript
import { jsonAutocomplete } from "@bonniernews/json-autocomplete";

const incompleteJson1 = '{"isActive": true, "roles": ["admin", "user"';
const completedJson1 = jsonAutocomplete(incompleteJson1);
console.log(completedJson1); // Outputs: {"isActive": true, "roles": ["admin", "user"]}

const incompleteJson2 = ', "permissions": {"read": true, "write": false';
const completedJson2 = jsonAutocomplete(incompleteJson2);
console.log(completedJson2); // Outputs: {"isActive": true, "roles": ["admin", "user"], "permissions": {"read": true, "write": false}}
```

## API 参考

### `createJsonAutocomplete()`

创建新的 JSON 自动完成实例 .

#### 回返

具有下列方法的天体:

-   **`append(part: string): string`**: 附加 JSON 的一个片段,并返回所有附件片段所构建的最佳有效 JSON 字符串.

#### 示例

```typescript
import { createJsonAutocomplete } from "@bonniernews/json-autocomplete";

const autocompleter = createJsonAutocomplete();

const jsonPart1 = '{"product": "Laptop", "price": 1200';
const completedJson1 = autocompleter.append(jsonPart1);
console.log(completedJson1); // {"product": "Laptop", "price": 1200}

const jsonPart2 = ', "specs": {"cpu": "Intel i7", "ram": "16GB"';
const completedJson2 = autocompleter.append(jsonPart2);
console.log(completedJson2); // {"product": "Laptop", "price": 1200, "specs": {"cpu": "Intel i7", "ram": "16GB"}}

const jsonPart3 = "}}";
const completedJson3 = autocompleter.append(jsonPart3);
console.log(completedJson3); // {"product": "Laptop", "price": 1200, "specs": {"cpu": "Intel i7", "ram": "16GB"}}
```

### `jsonAutocomplete`

一个用于渐进自动完成 JSON 字符串而无需手动管理自动完成实例的助手函数 .

#### 参数

-   **`incompleteJsonString: string`**不完整的JSON字符串碎片.
-   **`autocompleter?: ReturnType<typeof createJsonAutocomplete>`**: (可选) 已存在的自动补全实例 。 如果不提供,将创建一个新的系统.

#### 回返

-   **`string`**: 从所有附件片段所构建的最佳有效 JSON 字符串 .

#### 示例

```typescript
import { jsonAutocomplete } from "@bonniernews/json-autocomplete";

let completedJson = jsonAutocomplete('{"title": "Book"');
console.log(completedJson); // {"title": "Book"}

completedJson = jsonAutocomplete(', "author": "Jane Doe"');
console.log(completedJson); // {"title": "Book", "author": "Jane Doe"}

completedJson = jsonAutocomplete("}");
console.log(completedJson); // {"title": "Book", "author": "Jane Doe"}
```

## 捐款

欢迎捐款! 请遵循这些步骤:

1.  **叉子存储器**: 单击 [叉头](https://github.com/BonnierNews/json-autocomplete/fork) 按钮.
    
2.  **砍断你的叉子**数字 :
    
    ```bash
    git clone https://github.com/your-username/json-autocomplete.git
    cd json-autocomplete
    ```
    
3.  **安装依赖关系**数字 :
    
    ```bash
    npm install
    ```
    
4.  **创建新分支**数字 :
    
    ```bash
    git checkout -b feature/YourFeature
    ```
    
5.  **做你的改变**: 执行您的特性或错误修正 .
    
6.  **林特和类型检查**数字 :
    
    ```bash
    npm run lint
    npm run typecheck
    ```
    
7.  **运行测试**数字 :
    
    ```bash
    npm test
    ```
    
8.  **提交更改**数字 :
    
    ```bash
    git commit -m "Add your message here"
    ```
    
9.  **推到叉子边**数字 :
    
    ```bash
    git push origin feature/YourFeature
    ```
    
10.  **创建拉动请求**:去原寄存器并提交拉取请求.
     

### 行为守则

请遵守 [邦尼尔新闻行为守则](https://github.com/BonnierNews/json-autocomplete/blob/main/CODE_OF_CONDUCT.md) 在您与项目的所有互动中.

## 许可证

本项目根据以下规定获得许可证: [MIT 许可证](https://npmcn.com/package/%40bonniernews/json-autocomplete/LICENSE)。您可以根据许可证条款自由使用、修改和分发.

## 支助

如果遇到任何问题或有问题,请打开 [问题](https://github.com/BonnierNews/json-autocomplete/issues) (原始内容存档于2018-09-29). on GitHub.

## 常见问题

### @bonniernews/json-autocomplete 是什么？

完成不完全的 JSON 字符串与缓存相容

### 如何安装 @bonniernews/json-autocomplete？

在项目目录运行 npm install @bonniernews/json-autocomplete，或使用 pnpm add / yarn add / bun add。

### @bonniernews/json-autocomplete 支持 TypeScript 吗？

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

### @bonniernews/json-autocomplete 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @bonniernews/json-autocomplete 需要什么版本的 Node\.js？

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

### @bonniernews/json-autocomplete 可以商用吗？

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

### @bonniernews/json-autocomplete 的下载量有多少？

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

### @bonniernews/json-autocomplete 还在维护吗？

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

