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

颠簸变换 JSON 数组

司徒池暝
2023-03-14

我需要Jolt转换的帮助。我有数组,由许多json对象组成。(https://jolt-demo.appspot.com/)

json prettyprint-override">[
  {
    "table_name": "table_vd",
    "scratch_name": "l1_sample_1_1",
    "scratch_order": 1
  },
  {
    "table_name": "table_vd",
    "scratch_name": "l1_sample_1_1",
    "scratch_order": 34
  },
  {
    "table_name": "table_vd",
    "scratch_name": "l1_sample_2",
    "scratch_order": 3
  }
]

Jolt需要进行哪些转换才能获得以下结果?

{
  "table_name" : "table_vd",
  "data" : [ {
    "scratch_name" : "l1_sample_1_1",
    "scratch_order" : 1
  }, {
    "scratch_name" : "l1_sample_1_1",
    "scratch_order" : 34
  }, {
    "scratch_name" : "l1_sample_2",
    "scratch_order" : 3
  } ]
}

现在我有了下一个Jolt构造:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "table_name": "table_name",
        "*": {
          "@0": "data[0].&1"
        }
      }
    }
  }
]

但以下结果不正确:

{
  "table_name" : [ "table_vd", "table_vd", "table_vd" ],
  "data" : [ {
    "scratch_name" : [ "l1_sample_1_1", "l1_sample_1_1", "l1_sample_2" ],
    "scratch_order" : [ 1, 34, 3 ]
  } ]
}

共有1个答案

孟乐
2023-03-14

通过分离"table_name"和其他("*")使用条件逻辑,您开始得很好。将"*"(其余)重新排列为"*": "数据[

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "table_name": "&",
        "*": "data[&1].&"
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "table_name": "ONE"
    }
  }
]

 类似资料:
  • 我正在尝试为下面的输入编写一个震动转换 - 预期产量为- 我的规格是- 规范没有按照预期的输出进行转换。我想学习如何在字符串解析器中使用属性。

  • 我有这个JSON作为输入: 我需要得到这样的输出: 我需要使用哪种规格? 多谢!

  • 我正在尝试转换以下JSON 用JOLT转换成更简单的东西: 我尝试了很多颠簸的代码,但我不知道如何完成最后一部分。我写了一些颠簸的转变: 但是我不知道如何做最后一部分来旋转name列。name列的值应该基于NAV值旋转。

  • 我需要在输入JSON下面转换为输出JSON,但不确定如何编写规范。需要将一个字段(“主页”)重新定位为根元素。任何帮助或建议都将不胜感激。 输入JSON: 输出JSON:

  • 我正在将两个对象数组转换为一个对象数组。在这样做的时候,根据项目的类型,我需要为每个项目分配一个id。并且,在将这些项放入单个数组之后,ID应该是串行的,按照它们最初出现在输入JSON中的顺序。它不是所有项目的单个itemId。它基于自己的类型。PFB输入和输出JSON示例。使用jolt-core[0.1.0]。请帮忙。 如上所述,hotId和coldId是输出中的新字段。但是,它会增加。

  • 我正在尝试为以下输入创建震动转换: 所需输出为: 我刚刚开始理解jolt转换的基础,但是对于嵌套结构来说,这似乎有点复杂。