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

kettle学习(利用jsonPath定位,json文件转换)

kettle学习(利用jsonPath定位,json文件转换)

于数据处理的广袤天地间,我们时常需应对各类繁杂状况与各式格式。Kettle 作为极具威力的数据集成利器,赋予了我们诸多功能与无限可能此次博客里,我们将重点投向 Kettle 的研习,确切地说,是如何借助 jsonPath 这一强劲的手段来精确锚定和处置 JSON 文件。借由深入探究 json 文件的转换流程,我们将一道揭开数据处理那神秘的面纱,牢牢把握高效且精准地处理与转换数据的技巧及方法。让我们开启这趟满含挑战与收获的数据征程,持续提升自身于数据处理领域的能力层级与水准层次。

在这里插入图片描述

一、准备数据

josn文件取自,boss直聘中的城市数据
在这里插入图片描述
获取到该页面的json数据之后,双击进入源代码内,按住crtl+s保存json文件到本地

二、数据加载

  1. 输入JSON input
  2. 加载文件
    在这里插入图片描述
    在这里插入图片描述

三、数据定位

  • JSONPath 是一种用于在 JSON 数据中定位和提取特定元素的查询语言。
  • 它类似于 XPath 对 XML 的作用,可以帮助我们轻松地按照特定的路径表达式从复杂的 JSON 结构中获取所需的数据。以下是 JSONPath 的一些常见语法和示例:
    基本概念:
    什么是 JSONPath:JSONPath 是一种用于在 JSON 数据中定位和提取特定元素的查询语言。
    JSONPath 的作用和重要性:数据提取和过滤、数据导航和遍历、API 集成和数据交互、数据转换和处理。
    JSON 数据结构回顾:
    什么是 JSON:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
    JSON 的特点:人类可读性高、数据格式简单、可嵌套和可扩展、平台无关性。
    JSON 数据类型:对象(Object)、数组(Array)、字符串(String)、数字(Number)、布尔值(Boolean)、空值(null)。
    JSON 对象和数组:对象是一种无序的键值对集合,每个键值对由一个属性名和对应的值构成。数组是一个有序的值列表,可以包含任意数据类型的元素。
    嵌套 JSON 结构:JSON 允许在对象或数组中嵌套其他 JSON 对象或数组,从而形成复杂的数据结构。
    JSONPath 表达式:
    JSONPath 常见的运算符:$(根元素)、.(子元素)、[](数组索引或键)、*(通配符)。
    JSONPath 常见的函数:length()(数组长度)、max()(最大值)、min()(最小值)、avg()(平均值)
    JSONPath 数据提取案例:
{"商店": {"书籍": [{"分类": "惊悚","作者": "R.L.斯坦","书名": "鸡皮疙瘩","价格": 18.95},{"分类": "冒险","作者": "J.K.罗琳","书名": "哈利波特与火焰杯","书号": "ND-2131-34421","价格": 52.99},{"分类": "科幻","作者": "刘慈欣","书名": "三体","价格": 65.35},{"分类": "科幻","作者": "刘慈欣","书名": "流浪地球","价格": 32.99}],"自行车": {"品牌": "凤凰牌自行车","颜色": "红色","价格": 150.3}}}

测试样例:
$.商店.书籍[0].书名:获取商店中第一本书的书名。
$.商店.书籍[*].作者:获取商店中所有书的作者。
$.商店.自行车.品牌:获取商店中自行车的品牌。

JSONPath 与 XPath 的对比:
JSONPath 和 XPath 都是用于在数据结构中进行查询和导航的路径语言,但它们针对不同的数据格式。

  • 分析本文章中的json
  • 在这里插入图片描述
    我们要获得所有jobname的值的话,
    采用jsonpath:
**$.zpData.jobList..jobName**

在这里插入图片描述
后面实验可知道下面这种方法也可以

**$.zpData.jobList[*].jobName**

不过两种用法在某些情况结果可能不一样

$.zpData.jobList…jobName 和 $.zpData.jobList【*】.jobName 的区别
可能在于它们在解析和获取 JSON 数据中的 jobName 值时的方式略有不同。

  • $.zpData.jobList…jobName 使用了双点号(…)表示递归下降操作符。它会在 zpData.jobList 数组的所有嵌套层级中查找名为 jobName 的属性,并返回所有匹配的结果。
  • $.zpData.jobList【】.jobName 使用了方括号(【】)表示通配符索引。它会在 zpData.jobList 数组的每个元素中查找名为 jobName 的属性,并返回所有匹配的结果。
    总的来说,这两种表达式的主要区别在于它们在处理嵌套数组和对象结构时的方式不同。具体使用哪种方式取决于 JSON 数据的结构和需求。

四、文件输出

  1. 最后拖进excel输出,显示字段名,然后执行就可以了。
    在这里插入图片描述
http://www.lryc.cn/news/370260.html

相关文章:

  • 选到哪里看命
  • MyBatis插件机制介绍与原理
  • [每日一练]利用.str.len()布尔值查询实现字数需求
  • Post Microsoft Build and AI Day 北京开发者日
  • Qt-Advanced-Docking-System的学习
  • STM32定时器输出pwm的几种模式
  • 5 分支结构程序-5.1 关系运算符和表达式
  • 提升易用性,OceanBase生态管控产品的“从小到大”
  • Golang——gRPC认证
  • 探索FPGA技术:零成本入门指南
  • Java数据结构与算法(组合问题回溯算法)
  • CMake的使用方法
  • java面试整合全套
  • 贪吃蛇小游戏简单制作-C语言
  • Oracle数据库-重点信息查询方法
  • 【全开源】多平台租房系统源码(Fastadmin+ThinkPHP+Uniapp)
  • Pythond 的 corr函数
  • Fiddler 中文版 (强大的网络响应HTPP协议抓包工具)
  • 初出茅庐的小李博客之JSON格式介绍
  • Vue3相关语法内容,组件传值,事件监听,具名插槽。
  • Linux用户,用户组,所有者权限分配,sftp用户权限分配
  • iFlyCode:AI智能编程助手引领未来软件开发新趋势
  • 高低温测试发现文件被篡改
  • 高考真的不再重要了吗?
  • spring常用注解(八)@Async
  • B站画质补完计划(3):智能修复让宝藏视频重焕新生
  • Spring Cloud Stream整合RocketMQ
  • Web前端浪漫源码:编织梦想与爱的交织乐章
  • 【云岚到家】-day02-4-我的账户-实名认证
  • MySQL复习题(期末考试)