百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
J

jsonriver

> 编程语言
开源

基于标准构建的简单、快速的 JSON 解析器。

1.2K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

基于标准构建的简单、快速的 JSON 解析器。

jsonriver

逐步解析 JSON 数据,例如从网络请求或语言模型中流入的数据。提供一系列日益完整的值。 jsonriver 体积小,速度快,不依赖任何其他库,仅使用 JavaScript 的标准功能,因此可在任何 JS 环境中运行。 用法:

javascript
// Richer example at examples/fetch.js and live demos at
// https://rictic.github.io/jsonriver/
import {parse} from 'jsonriver';

const response = await fetch(`https://jsonplaceholder.typicode.com/posts`);
const postsStream = parse(response.body.pipeThrough(new TextDecoderStream()));
for await (const posts of postsStream) {
  console.log(posts);
}

增量值

我们给你提供了一系列日益完整的值,这意味着什么? 请考虑以下 JSON:

json
{"name": "Alex", "keys": [1, 20, 300]}

如果你一次一个字节地将其传递给 jsonriver,则会得到以下值序列:

json
{}
{"name": ""}
{"name": "A"}
{"name": "Al"}
{"name": "Ale"}
{"name": "Alex"}
{"name": "Alex", "keys": []}
{"name": "Alex", "keys": [1]}
{"name": "Alex", "keys": [1, 20]}
{"name": "Alex", "keys": [1, 20, 300]}

正确性

parse 返回的最终值与在整个字符串上调用 JSON.parse 相同。这项测试与 JSONTestSuite 进行比较,以匹配 JSON.parse 在正确、不正确和模糊情况的测试中所表现出的行为。parse 函数还匹配 JSON.parse 的行为,对于无效输入。如果输入流无法解析为有效 JSON 文档的开始,则解析停止,并抛出错误。更准确地说,AsyncIterable 上的 next 方法返回的 promise 会以 Error 形式拒绝。同样,如果输入流过早关闭。

  1. 值的后续版本具有相同的类型,即我们永远不会将一个值作为字符串返回,然后再将其替换为数组(除非对象具有重复的键,请参阅不变性 7)。 2. true、false、null 和数字是原子类型,我们不会将它们返回,直到获得完整的值。 3. 字符串可以被替换为更长的字符串,附加更多字符(从 JavaScript 的角度来看)。 4. 数组是可变的,可以添加更多元素。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScriptincremental-parsingjsonparsingstreaming

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言