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

Jolt-转换为输出数组

乐钱青
2023-03-14

我对震动有点陌生,一直在努力进行正确的转变。任何帮助都很感激。这是我的输入数据:

{
  "data": {
    "names": [
      "columnA",
      "columnB",
      "columnC",
      "columnD",
      "columnE",
      "columnF",
      "columnG",
      "columnH",
      "columnI",
      "columnJ",
      "columnK"
    ],
    "ndarray": [
      [
        0,
        1,
        2,
        "aString",
        "bString",
        3,
        4,
        "Text in English (A)",
        "Text in German (A)",
        "Error id A",
        "Error text A"
      ],
      [
        10,
        11,
        12,
        "cString",
        "dString",
        13,
        14,
        "Text in English (B)",
        "Text in German (B)",
        "Error id B",
        "Error text B"
      ]
    ]
  }
}

我的目标是创建一个包含所有条目的数组。对于本例,将有2个条目(长度与data.ndarray)相同。数组data.ndnames(键)和data.ndarray[i](值)是1:1映射的,即它们应该具有相同的长度。

这是预期的输出:

{
  "result": [
    {
      "columnA": 0,
      "columnG": 4,
      "columnC": 2,
      "columnF": 3,
      "explanation": [
        {
          "text": "Text in English (A)",
          "lang": "EN" // constant value
        },
        {
          "text": "Text in German (A)",
          "lang": "DE" // constant value
        }
      ],
      "columnD": "aString",
      "columnI": "Error id A",
      "columnJ": "Error text A"
    },
    {
      "columnA": 10,
      "columnG": 14,
      "columnC": 12,
      "columnF": 13,
      "explanation": [
        {
          "text": "Text in English (B)",
          "lang": "EN" // constant value
        },
        {
          "text": "Text in German (B)",
          "lang": "DE" // constant value
        }
      ],
      "columnD": "cString",
      "columnI": "Error id B",
      "columnJ": "Error text B"
    }
  ]
}

共有1个答案

闻人吕恭
2023-03-14

[编辑]尝试以下规范:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "ndarray": {
          "*": {
            "*": {
              "@": "result[&2].@(4,names[&1])"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "result": {
        "*": {
          "columnH": "result[&1].explanation[0].text",
          "#EN": "result[&1].explanation[0].lang",
          "columnI": "result[&1].explanation[1].text",
          "#DE": "result[&1].explanation[1].lang",
          "columnB": null,
          "columnE": null,
          "columnJ": "result[&1].columnI",
          "columnK": "result[&1].columnJ",
          "*": "result[&1].&"
        }
      }
    }
  }
]
 类似资料:
  • 我必须将 JSON 输入转换为包含一个对象的数组。 我有这个 JOLT 配置: 以下是我的意见: 实际产量: 期望的输出: 你知道该怎么做吗? 谢谢你们的帮助

  • 有人能帮我定义jolt规范,把输入json转换成输出json吗..我在一个文件中输入了json,像{"filename":"test1 "," value":"10"} {"filename":"test2 "," value":"10"}。转换后的输出json应该如下所示:{"filename":"test "," overallvalue":"20 "," filename":[{"filen

  • 我有以下输入json: 输出JSON应如下所示: 任何人都可以就如何为上述内容构建适当的 Bump 规范提供任何指导吗? 非常感谢您的帮助 ^_^

  • 我需要使用JOLT转换将下面的输入转换为精确的输出。输入: 输出: 我尝试使用以下规格,但没有驱动到我需要的精确输出。规格: 任何帮助都将不胜感激。谢谢

  • 我正在尝试用以下规格进行JOLT换班操作,这是不起作用的。不知道我犯了什么错误。在这种情况下需要帮助。输出JSON作为一个对象来代替Array,shift也不能按预期工作。

  • 我想用JOLT规范做JSON到JSON的转换。我有一个输入,它是Flattern JSOn,我想把它隐藏到嵌套JSOn中。我已经为此编写了JOLT规范,下面提到了它。但它并没有给出我所期望的输出。 提前感谢....