当前位置: 首页 > article >正文

简单介绍JSONStream的使用

地址

作用

这个模块是根据需要筛选出json数据中自己所需要的数据

使用

var JSONStream = require("JSONStream");
var parse = require("fast-json-parse");
var fs = require("fs");

fs.createReadStream("./time.json")
  .pipe(JSONStream.parse("rows.*.doc"))
  .on("data", (data) => {
    // 在这里处理每个 JSON 对象
    console.log(data);
  })
  .on("end", () => {
    console.log("所有数据已处理完毕");
  });

parse参数介绍

  1. rows.*.doc 路径
  • JSONStream.parse(‘rows.*.doc’) 是用于提取 JSON 中嵌套字段的路径。
  • ‘rows.*.doc’ 表示你要从 JSON 数据中提取:
    • rows 字段,它是一个数组。
      • 是通配符,表示匹配 rows 数组中的每个元素。
    • doc 表示从每个元素中提取 doc 属性。
// JSONStream.parse('rows.*.doc')
// json数据 
{
  "rows": [
    { "doc": { "id": "doc1", "content": "data1" } },
    { "doc": { "id": "doc2", "content": "data2" } }
  ]
}
// 输出
{ "id": "doc1", "content": "data1" }
{ "id": "doc2", "content": "data2" }
  1. … 操作符:递归下降操作符
  • … 是 JSONPath 中的递归下降操作符,表示在 JSON 树中的任意深度查找匹配的节点。它会查找对象的子节点,不论深度如何。
// JSONStream.parse('..doc')
// json数据
{
  "data": {
    "info": {
      "rows": [
        { "doc": { "id": "doc1" } },
        { "doc": { "id": "doc2" } }
      ]
    }
  }
}
// 输出
{ "id": "doc1" }
{ "id": "doc2" }

  1. 使用数组表示路径
  • 数组中的元素可以是字符串、正则表达式、布尔值或函数,它们分别用于匹配对象的键、值或键名。
    • JSONStream.parse([‘row’, true, /^doc/])
    • ‘row’ 会匹配 row 键。
    • true 会匹配所有键(即匹配 row 对象中的所有键)。
    • /^doc/ 是正则表达式,匹配所有以 doc 开头的键。
// JSONStream.parse(['row', true, /^doc/])
// json数据
{
  "row": {
    "doc1": { "id": "doc1", "content": "data1" },
    "doc2": { "id": "doc2", "content": "data2" }
  }
}
// 输出
{ "id": "doc1", "content": "data1" }
{ "id": "doc2", "content": "data2" }
以上用法均来自gpt搜索, parse参数还有其他的类型,可以使用gpt搜索用法

放一张长截图
在这里插入图片描述


http://www.kler.cn/a/507921.html

相关文章:

  • idea 如何安装 github copilot
  • 计算机网络 (43)万维网WWW
  • wireshark抓路由器上的包 抓包路由器数据
  • 记录一次微信小程序使用云能力开发的过程
  • 从AI原理到模型演进及代码实践 的学习二
  • 数字人助力企业出海增长,魔珐科技亮相2025晋江跨境电商峰会
  • Gateway与WebFlux的整合
  • 1.3变革之力:Transformer 如何重塑深度学习的未来
  • 精选算法合集
  • 快慢指针问题
  • 【2024年华为OD机试】(B卷,100分)- 比赛 (Java JS PythonC/C++)
  • 隧道IP广播与紧急电话系统:提升隧道安全的关键技术
  • CanTp 笔记
  • 【微信小程序】5|我的页面 | 我的咖啡店-综合实训
  • 【PowerQuery专栏】PowerQuery 函数之CSV文件处理函数
  • 手机上做笔记的APP工具?有哪些好用的记笔记APP
  • 警惕IDEA 2024版重大Bug问题:LomBok失效、Gradle冲突、Spring Boot启动错误
  • 【Azure 架构师学习笔记】- Azure Function (2) --实操1
  • JVM直击重点
  • 在 Azure 100 学生订阅中新建 Ubuntu VPS 并通过 Docker 部署 pSQL 服务器
  • 加菲工具格式化XML:让数据呈现更清晰
  • Python 文字生成语言,保存为wav格式
  • SQL2000在win10上安装的方法
  • go语言zero框架中在线截图chromedp 设置超限的网页长度
  • 基于matlab的火焰高度求解
  • docker与部署微服务实战