寻找一些关于Jolt转型的帮助,这对我来说是全新的.

我的输入JSON如下所示

{
  "type": "delete",
  "timestamp": 1681484884000,
  "binlog_filename": "bin.000003",
  "binlog_position": 6378700,
  "database": "db1",
  "table_name": "records",
  "table_id": 108,
  "columns": [
    {
      "id": 1,
      "name": "id",
      "column_type": 4,
      "value": 259
    },
    {
      "id": 2,
      "name": "index_id",
      "column_type": 4,
      "value": 1
    },
    {
      "id": 3,
      "name": "state_id",
      "column_type": 4,
      "value": 1
    }
  ]
}

(这来自MySQL binlog.)

我想将其转换为"Columns"数组中的单个字段.

[
  {
    "id": 259
  }
]

从Cloudera社区的一个教程中,我看到了这种震撼的转变.

[
  {
    "operation": "shift",
    "spec": {
      "columns": {
        "*": {
          "@(value)": "[#1].@(1,name)"
        }
      }
    }
  }
]

但它给了所有的文件..我只需要一个字段,那就是ID.我需要删除所有字段.

有人能在这方面帮帮忙吗?

推荐答案

您可以再添加一个转换并使其如下所示

[
  {
    "operation": "shift",
    "spec": {
      "columns": {
        "*": {
          "@value": "@name" // match directly as they're from the same level
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "id": "[0].&" // [0] produces a square-bracket wrapper
    }
  }
]

哪个属性按id个属性进行筛选

Json相关问答推荐

使用Powershell脚本将配置信息块添加到json文件

Jolt需要将缺少的值设置为空并保持相同的位置

在PowerShell中,如何获取数据对所在的JSON对象的名称

由于无效的UTF-8开始字节0xa0,JSON被拒绝,但编码似乎有效

使用自定义类型在Golang中解析JSON数组

Python 将 struct 化文本转换和筛选为对象

如何在JQ中展平多维数组

如何在 wso2 中组合 2 个 json 有效负载?

如何在linux中用jq过滤json数组?

坚持弄清楚如何使用 api 响应来调用以从不同的链接检索响应

如何在生产环境中更改 Flutter 应用程序中的数据模型?

如何解决名为 null 的map值

解析包含换行符的 JSON

如何从 mysql 数据库构建 JSON 数组

从 HttpResponse 获取 json

Spring MVC控制器中的JSON参数

将 Objective-C 对象序列化和反序列化为 JSON

json_encode() 返回 false

如何从 BindingResult 获取控制器中的错误文本

如何在本地存储中存储对象数组?