JOLT 转换以沿数组复制单个值

2023-12-15

我想将 JSON 转换为键值对,并同时复制特定的单个值,即"timestamp",对于所有这些对。

输入 JSON:

{
  "Timestamp": "2018-05-13T14:57:09",
  "first_key": "1023",
  "another_key": "1987",
  "yet_another_key": "677"
}

预期输出:

[
  {
    "Timestamp": "2018-05-13T14:57:09.087",
    "key": "first_key",
    "value": "1023"
  },
  {
    "Timestamp": "2018-05-13T14:57:09.087",
    "key": "another_key",
    "value": "1987"
  },
  {
    "Timestamp": "2018-05-13T14:57:09.087",
    "key": "yet_another_key",
    "value": "677"
  }
]

到目前为止,我提出的是以下 JOLT 规范。它已经为所有非“时间戳”的条目生成了键值对,但是如何将“时间戳”的值复制到每个记录中?

[
  {
    "operation": "shift",
    "spec": {
      "Timestamp": "[].Timestamp",
      "*": {
        "$": "[#2].key",
        "@": "[#2].value"
      }
    }
  }
]

上述 JOLT 规范的输出:

[
  {
    "Timestamp": "2018-05-13T14:57:09.087"
  },
  {
    "key": "first_key",
    "value": "1023"
  },
  {
    "key": "another_key",
    "value": "1987"
  },
  {
    "key": "yet_another_key",
    "value": "677"
  }
]

Spec

[
  {
    // first separate the Timestamp from the fields that 
    //  are going to be pivoted.
    // This is needed because the "[#2]" logic 
    //  isn't doing what you think it is / 
    //  you would end up with a null in your output array.
    // Basically the "[#2]" logic as written only works
    //  when you are cleanly pivoting data.  Which you are
    //  not because "Timestamp" and "first_key" are siblings.
    "operation": "shift",
    "spec": {
      "Timestamp": "Timestamp",
      "*": "keysToPivot.&"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "keysToPivot": {
        "*": {
          // Now that we can cleanly loop thru _only_ the 
          //  keysToPivot, the [#2] logic will work "right".
          // Additionally, lookup the Timestamp value
          //  and add it to each "pivoted" output.
          "$": "[#2].key",
          "@": "[#2].value",
          "@(2,Timestamp)": "[#2].Timestamp"
        }
      }
    }
  }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JOLT 转换以沿数组复制单个值 的相关文章

随机推荐

  • Chart.js 工具提示模板不起作用

    因此 我正在 Chart js 中使用条形图 并且尝试让自定义工具提示正常工作 环顾四周 似乎在这种情况下要做的事情是添加 tooltipTemplate test 到我的选项部分 这将在结果工具提示中的数据值后面显示单词 test 然而
  • 在 SQL 中存储用户定义数据的正确方法

    我想构建一个类似于 wufoo 的在线表单生成器 允许用户创建和发布自己的 Web 表单 每个提交内容都应保存到数据库中 用户稍后可以在数据库中检索提交内容 因为这些形式将是动态的 即 用户可以完全控制表单字段的数量和类型我正在尝试考虑一个
  • PHP - 当变量放入 url 时,include() 文件不起作用?

    在 PHP 中 我构建了一个网页 它使用 include 来加载网站的某些部分 然而 我现在遇到了一个类似的问题 当我使用如下网址时 data openov storingen php type actueel它给了我这个错误 Warnin
  • 如何通过 tasytpie API 将产品放入购物车?

    假设我们有这些模型 原始项目有所不同 但这将是常见任务 class Cart models Model owner models ForeignKey User products models ManyToManyField Product
  • excel vba - 多条件索引匹配

    我正在尝试在 vba 中执行多条件索引匹配函数 但我似乎无法得到结果 我使用的代码如下 wsDest Range wsDest Cells i X wsDest Cells i X Application WorksheetFunction
  • 如何使用 while 循环和拆分来汇总逗号和换行符分隔的 CSV 文件中的数据?

    Perl 脚本必须加载 CSV 数据文件并对文件中的所有数字求和 文件中只有数字 以逗号和换行符分隔 我已经完成了大部分代码 但我没有得到正确的总数 我可能会忽略某些事情或对一两个概念有根本性的误解 任何帮助将不胜感激 全部汇总的 CSV
  • 如何在 TForm 以外的控件中捕获 WM_DEVICECHANGE?

    直到今天我一直在使用以下代码来捕获WM DEVICECHANGE应用程序主窗体中的消息并且它运行良好 但是 如果我尝试在自定义控件中使用它 我不会收到有关设备插入或删除的通知 怎么了 TDriveBar class TCustomPanel
  • 将闪亮与 Quantstrat 回测相结合

    我正在尝试制作一个网络应用程序 目的是使用 quantstrat 然而 我在整合两者方面遇到了一些困难 没有这方面的文档 所以很难找到一个开始的地方 这是我现在的代码 如果您能让我知道我做错了什么 我将不胜感激 谢谢 library shi
  • 将新值插入数组

    我目前有不同长度的列向量 我想在原始数组的各个点插入另一个列向量 即 我想将新数组添加到旧数组的开头 跳过 10 个位置 再次添加新数组 再跳过 10 个空格 再次添加新数组 依此类推 直到数组末尾 我可以使用以下方法来做到这一点 Offs
  • onTouch() 连续播放声音

    我想通过onTouch连续播放枪声 我这样做是为了自动枪的声音 所以我有声音循环延迟的问题 它不会给出真正的自动枪声音效果 我的主要观点是 声音一次又一次播放时不应有延迟 我的代码是 public boolean onTouch View
  • Mysqli 准备好的 Stmt 返回 0 num_rows [重复]

    这个问题在这里已经有答案了 帮助 我得到 0 num rows 但如果我在控制台中执行查询我会得到结果 我对准备好的 stmts 有点陌生 这是我的代码 数据库连接类 class DbConnection const HOST localh
  • Delphi中如何发送广播消息

    我想在我的局域网中发送广播UDP消息 应用程序是客户端 服务器 我希望更新用户界面 这样任何计算机都会发送消息来更新其他计算机 我可以使用UDPServer indy吗 如何使用 谢谢 创建两个应用程序 一个代表发送者 另一个代表接收者 S
  • 使用DBCC CHECKIDENT重新启动Identity列计数后是否可以回滚到原始状态?

    目前 在某些操作中 我必须删除旧数据并插入新数据 但我注意到 尽管删除了数据 但身份列并未重置并从其最后一个最大值继续 因此 我使用 DBCC CheckIdent 来实现相同的目的 所有这些都在事务中发生 我可以将事务回滚到初始状态吗 D
  • Django 在 save() 方法之后插入新对象而不是更新

    当试图update现有的 Django 模型对象 带有save 方法 一个new而是插入行 例如 gt gt gt import datetime gt gt gt from data lib models import Meal gt g
  • 如何配置 Poltergeist 或 PhantomJS 不遵循重定向?

    我有一些测试要求 JS 驱动程序不遵循重定向 是否可以配置 Poltergeist 来执行此操作 我注意到可以使用以下命令将命令传递给 PhantomJS命令行界面 所以也许这是另一种方法 我对Poltergeist不熟悉 所以我只回答Ph
  • 在Python中使用中文构建字典

    这是我第一次来这里 而且我对 Python 世界还是个新手 我也在学习中文 我想创建一个程序来使用字典复习中文词汇 这是我通常使用的代码 usr bin python coding utf 8 dictionary Hello 你好 Sim
  • 从 Flask 中的数据库中删除元素

    我想确保我在这里遵循最佳实践 我有一个从数据库中提取的数据表 在最后一列中 我有用于编辑或删除该行的链接 我觉得我总是被告知永远不要使用 GET 请求修改服务器上的数据 除了 GET 请求之外 我将如何处理删除此数据行 数据表的代码如下 t
  • 我们如何将用户和机器人消息记录到微软机器人框架中的cosmos db

    我使用 microsoft bot Framework v4 sdk 创建了一个聊天机器人 我想将机器人用户和机器人消息记录到 cosmos db 我只能使用下面的博客记录用户消息 我希望记录用户和机器人的响应 值得庆幸的是 这很容易 因为
  • Java 属性的字段隐藏

    我刚刚开始学习 Java 所以如果答案有些明显 请耐心等待 我做了一些研究但没有结果 据我了解 属性不会被覆盖 而只是隐藏字段 为了确定是否使用超类或子类中的属性 Java将检查引用的类型 然后我不明白这里的输出 public class
  • JOLT 转换以沿数组复制单个值

    我想将 JSON 转换为键值对 并同时复制特定的单个值 即 timestamp 对于所有这些对 输入 JSON Timestamp 2018 05 13T14 57 09 first key 1023 another key 1987 ye