0

0

使用 JOLT 进行 Shift 转换:动态提取多层级数据并生成数组

心靈之曲

心靈之曲

发布时间:2025-07-21 15:44:01

|

655人浏览过

|

来源于php中文网

原创

使用 jolt 进行 shift 转换:动态提取多层级数据并生成数组

本文将详细讲解如何使用 JOLT 的 shift 转换,从多层嵌套的 JSON 结构中提取数据,并将其转换为数组。 即使JSON结构具有不确定的层级深度,我们也能通过调整 JOLT 规范,保证输出结果始终为数组,从而简化后续的数据处理流程。

在 JOLT 中,要将提取的值放入数组中,关键在于在 shift 操作的 spec 中,目标字段的键名后添加 []。 这会将该字段强制转换为数组类型,即使只有一个匹配项。

示例:

假设我们有以下输入 JSON:

{
  "id": 1,
  "item": [
    {
      "id": "1_1",
      "foo": {
        "id": 1232,
        "nn": "sdfsd"
      }
    }
  ]
}

我们的目标是提取 foo.nn 的值,并将其放入名为 type 的数组中。

JOLT Spec:

以下 JOLT spec 可以实现这个目标:

[
  {
    "operation": "shift",
    "spec": {
      "item": {
        "*": {
          "foo": {
            "nn": "type[]"
          }
        }
      }
    }
  }
]

解释:

MaxAI
MaxAI

MaxAI.me是一款功能强大的浏览器AI插件,集成了多种AI模型。

下载
  • "operation": "shift":指定使用 shift 操作。
  • "item":定位到 JSON 中的 "item" 字段。
  • "*":匹配 "item" 数组中的所有元素。
  • "foo":定位到每个 "item" 元素中的 "foo" 字段。
  • "nn": "type[]":提取 "foo" 字段中的 "nn" 字段的值,并将其放入名为 "type" 的数组中。 关键在于 type[],它确保输出始终是一个数组,即使只有一个 "nn" 字段的值被提取。

输出:

使用上述 JOLT spec 转换输入 JSON,将得到以下输出:

{
  "type": [
    "sdfsd"
  ]
}

多项数据的情况:

如果输入 JSON 中有多个 item 元素,例如:

{
  "id": 1,
  "item": [
    {
      "id": "1_1",
      "foo": {
        "id": 1232,
        "nn": "sdfsd"
      }
    },
    {
      "id": "1_2",
      "foo": {
        "id": 4567,
        "nn": "dfsds"
      }
    }
  ]
}

使用相同的 JOLT spec,输出将自动包含所有提取的值:

{
  "type": [
    "sdfsd",
    "dfsds"
  ]
}

总结:

通过在 JOLT shift 操作的目标字段键名后添加 [],可以强制将输出转换为数组,从而简化数据处理流程,并确保输出格式的一致性。 这种方法尤其适用于处理层级深度不确定的 JSON 结构,可以轻松提取所需数据并将其合并到一个数组中。 记住,[] 的位置至关重要,它必须位于键名之后,才能指示 JOLT 创建一个数组。

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

411

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

532

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

10

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

106

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

64

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号