当前位置: 首页 > 知识库问答 >
问题:

移位 JOLT 转型 - 面临以下转型的问题

东门彬
2023-03-14

我正在尝试转换下面的输入 json 以扁平化必要的列名及其值,同时保留所有元数据。

下面是我的CDC用例的输入json。

{
  "type": "update",
  "timestamp": 1558346256000,
  "binlog_filename": "mysql-bin-changelog.000889",
  "binlog_position": 635,
  "database": "books",
  "table_name": "publishers",
  "table_id": 111,
  "columns": [
    {
      "id": 1,
      "name": "id",
      "column_type": 4,
      "last_value": 2,
      "value": 2
    },
    {
      "id": 2,
      "name": "name",
      "column_type": 12,
      "last_value": "Suresh",
      "value": "Suresh123"
    },
    {
      "id": 3,
      "name": "email",
      "column_type": 12,
      "last_value": "Suresh@yahoo.com",
      "value": "Suresh@yahoo.com"
    }
  ]
}

下面是预期的输出 json

[
  {
    "type": "update",
    "timestamp": 1558346256000,
    "binlog_filename": "mysql-bin-changelog.000889",
    "binlog_position": 635,
    "database": "books",
    "table_name": "publishers",
    "table_id": 111,
    "columns": {
      "id": "2",
      "name": "Suresh123",
      "email": "Suresh@yahoo.com"
    }
  }
]

我尝试了下面的规范,我可以从中检索列对象,但不能检索其余的元数据。

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

任何线索将不胜感激。

共有1个答案

郏实
2023-03-14

我得到了上述转换的 JOLT 规范。我把它贴在这里,以防有人偶然发现这样的东西。

[
  {
    "operation": "shift",
    "spec": {
      "columns": {
        "*": {
          "@(value)": "columns.@(1,name)"
        }
      },
      "*": "&"
    }
  }
]
 类似资料:
  • 我试图使用JOLT根据属性将一个标签数组分割成多个标签。 这是输入和预期输出 输入json 预期输出如下所示 请帮助我进行颠簸转换。提前致谢

  • 我想使用JOLT转换做两件事: 过滤名为 myArray 的数组中的元素,以便仅保留具有“v_518”属性的元素 过滤掉除“v_518”和“LFDN”之外的其余元素的所有属性 输入: 期望输出: 到目前为止,我尝试了什么,但没有按预期工作: 我尝试使用http://jolt-demo.appspot.com/#andrewkcarter2中的示例,但我不知道如何做到这一点。

  • 本文向大家介绍Java 向上转型和向下转型的详解,包括了Java 向上转型和向下转型的详解的使用技巧和注意事项,需要的朋友参考一下  Java 向上转型和向下转型的详解 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。 向上转型:子类引用的对象转换为父类类型称为向上转型。通

  • 问题内容: 这是我的问题:鉴于这些课程 此代码编译: 并且这不: 是什么赋予了? 更新: 此代码可在Java 8中编译。显然是由于“改进的类型推断”。 问题答案: 在第一个示例中,调用的推断类型为,显然可以将其分配给相同类型的变量。 在第二个示例中,右侧的类型为。虽然 是 分配给, 不 分配给。它可以分配给。 其原因与a 不可分配给的原因相同。如果是这样,它将使以下(非类型安全的)代码成为可能:

  • 无法使用颠簸实现上述输出格式,并且经历了多个SO问题,找不到类似的问题。尝试在 jolt 规范数组中添加索引,但不起作用。提前感谢,并在下面找到输入,输出和震动规格 输入: Jolt规格: 电流输出: 预期产出:

  • 上面的代码是,我从容器里面实例化的一个类,AdminService,invoke返回的是一个mixed任意类型,这样我就出现了一个问题了。 如果我不写@var 标注,我的编辑器就无法识别这个$adminService 实例下的方法了。 请问如何将$adminService 转换成AdminServcie 类型!