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

与颠簸搏斗

施旭东
2023-03-14

我正在努力使用Jolt进行转换。

输入:

{
  "records": [
    {"counters": "Item1 Item2 Item3 Item4 Item5 Item6",
      "values": "V1 V2 V3 V4 V5 V6"},
    {"counters": "Item7 Item8 Item9 Item10 Item11",
      "values": "V7 V8 V9 V10 V11"},
    {"counters": "Item12 Item13",
      "values": "V12 V13"},
    {"counters": "Item14",
      "values": "V14"}
  ]
}
{
  "xItem1" : "V1",
  "xItem2" : "V2",
  "xItem3" : "V3",
  "xItem4" : "V4",
  "xItem5" : "V5",
  "xItem6" : "V6",
  "xItem7" : "V7",
  "xItem8" : "V8",
  "xItem9" : "V9",
  "xItem10" : "V10",
  "xItem11" : "V11",
  "xItem12" : "V12",
  "xItem13" : "V13",
  "xItem14" : "V14"
}
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "records": {
        "*": {
          "counters": "=split(' ',@(1,counters))",
          "values": "=split(' ',@(1,values))"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "records": {
        "*": {
          "counters": { "*": "counters[]" },
          "values": { "*": "values[]" }
        }
      }
    }
  },
  { // ...concat() must instead of toUpper...
    "operation": "modify-overwrite-beta",
    "spec": {
      "counters": {
        "*": "=toUpper"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "counters": {
        "*": {
          "*": {
            "@(3,values[#2])": "&"
          }
        }
      }
    }
  }
]

谢谢

共有1个答案

秦俊
2023-03-14

不确定这是否是您所需要的,但是您并不需要使用concat向属性名添加x,只需将x添加到后面跟着&:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "records": {
        "*": {
          "counters": "=split(' ',@(1,counters))",
          "values": "=split(' ',@(1,values))"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "records": {
        "*": {
          "counters": { "*": "counters[]" },
          "values": { "*": "values[]" }
        }
      }
    }
  },
  { 
    "operation": "modify-overwrite-beta",
    "spec": {
      "counters": {
        "*": "=toUpper"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "counters": {
        "*": {
          "*": {
            "@(3,values[#2])": "x&"
          }
        }
      }
    }
  }
]
 类似资料:
  • 我正在尝试为下面的输入编写一个震动转换 - 预期产量为- 我的规格是- 规范没有按照预期的输出进行转换。我想学习如何在字符串解析器中使用属性。

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

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

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

  • 我需要Jolt转换的帮助。我有数组,由许多json对象组成。(https://jolt-demo.appspot.com/) Jolt需要进行哪些转换才能获得以下结果? 现在我有了下一个Jolt构造: 但以下结果不正确:

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