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

JOLT 规范 - 将数组转置为类

奚正谊
2023-03-14

我需要通过使用JOLT规范来转换JSON结构。我用https://jolt-demo.appspot.com来测试以下内容。

我还可以通过另一个JOLT规范运行OUTPUT,然后检索我所需的JSON输出,但我仍然不知道JOLT规格应该是什么样子,我已经看过了示例,没有进一步了解上面提到的内容。

输入-

这是输入 JSON

{
  "result": 0,
  "companys": [
    {
      "id": 3,
      "pId": 322,
      "nm": "Balfin Trading (PTY) LTD"
    },
    {
      "id": 25,
      "pId": 0,
      "nm": "FootCam"
    }
  ],
  "vehicles": [
    {
      "id": 487,
      "desc": null,
      "ic": 2,
      "nm": "GCS001",
      "pnm": null,
      "dl": [
        {
          "id": "60335",
          "ic": 0,
          "us": null,
          "md": 361,
          "tn": "",
          "vt": null,
          "io": "",
          "isb": null,
          "sim": "0726168807",
          "cc": 4,
          "dId": null,
          "sdc": null,
          "pid": 83,
          "st": null,
          "tc": 0,
          "cn": "ROAD,CAB,R SIDE VIEW,L SIDE VIEW",
          "nflt": null
        }
      ],
      "adt": null,
      "pvg": null,
      "djb": null,
      "etm": null,
      "pid": 83,
      "phone": null,
      "abbr": null,
      "vtp": null,
      "st": null,
      "dt": null,
      "dn": null,
      "linesOperation": null
    },
    {
      "id": 486,
      "desc": null,
      "ic": 2,
      "nm": "GCS002",
      "pnm": null,
      "dl": [
        {
          "id": "60334",
          "ic": 0,
          "us": null,
          "md": 361,
          "tn": "",
          "vt": null,
          "io": "",
          "isb": null,
          "sim": "0767024106",
          "cc": 4,
          "dId": null,
          "sdc": null,
          "pid": 83,
          "st": null,
          "tc": 0,
          "cn": "ROAD,CAB,R SIDE,L SIDE",
          "nflt": null
        }
      ],
      "adt": null,
      "pvg": null,
      "djb": null,
      "etm": null,
      "pid": 83,
      "phone": null,
      "abbr": null,
      "vtp": null,
      "st": null,
      "dt": null,
      "dn": null,
      "linesOperation": null
    },
    {
      "id": 491,
      "desc": null,
      "ic": 2,
      "nm": "GCS003",
      "pnm": null,
      "dl": [
        {
          "id": "60294",
          "ic": 0,
          "us": null,
          "md": 361,
          "tn": "",
          "vt": null,
          "io": "",
          "isb": null,
          "sim": "0795732047",
          "cc": 4,
          "dId": null,
          "sdc": null,
          "pid": 83,
          "st": null,
          "tc": 0,
          "cn": "ROAD,CAB,R SIDE,L SIDE",
          "nflt": null
        }
      ],
      "adt": null,
      "pvg": null,
      "djb": null,
      "etm": null,
      "pid": 83,
      "phone": null,
      "abbr": null,
      "vtp": null,
      "st": null,
      "dt": null,
      "dn": null,
      "linesOperation": null
    }
  ]
}

这是我目前拥有的雷震天赋

[
  {
    "operation": "shift",
    "spec": {
      "vehicles": {
        "*": {
          "nm": "name",
          "dl": {
            "*": {
              "id": "deviceID"
            }
          }
        }
      }
    }
   }
]

给出以下输出

{
  "name" : [ "GCS001", "GCS002", "GCS003" ],
  "deviceID" : [ "60335", "60334", "60294" ]
}

相反,我要求输出是

[{
    "name" : "GCS001", 
    "deviceID" : "60335"
},
{
    "name" : "GCS002", 
    "deviceID" : "60334"
},
{
    "name" : "GCGCS003S001", 
    "deviceID" : "60294"
}]

共有2个答案

锺离自明
2023-03-14
[
  {
    "operation": "shift",
    "spec": {
      "vehicles" : {
        "*" : {
          "@(0,nm)" : "[&1].name",
          "dl" : {
            "*" : {
              "@(0,id)" : "[&3].deviceID"
            }
          }
        }
      }
    }
  }
]
商冠玉
2023-03-14

你们离得很近。我做了什么 - 将名称和设备ID放入t对象,并在另一个规范中删除了该对象的名称。

[
  {
    "operation": "shift",
    "spec": {
      "vehicles": {
        "*": {
          "nm": "t[&1].name",
          "dl": {
            "*": {
              "id": "t[&3].deviceID"
            }
          }
        }
      }
    }
   },
  {
    "operation": "shift",
    "spec": {
      "t": ""
    }
  }
]
 类似资料:
  • 我需要使用jolt转换来执行以下JSON转换。 需要将输入Json中的“PID3”值拆分为输出Json中的键值对数组 输入JSON 输出数据杰明 --基于输入字符串的多个

  • Jolt对我来说是新的,我一直在与这个问题作斗争,直到我创建这篇文章。 我想把这个: 进入这个 每个属性的值可以是1值,也可以是未知数量值的数组。 我将以下json更改为第一个json中的内容: RHS上的属性名称是通用的,属性值的数量也可能不同。提前感谢您抽出时间来帮助我。

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

  • 我必须将 JSON 输入转换为包含一个对象的数组。 我有这个 JOLT 配置: 以下是我的意见: 实际产量: 期望的输出: 你知道该怎么做吗? 谢谢你们的帮助

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

  • 如果我在输入中有集合,则以数组形式出现。如果有缺失值,我正在使用“修改默认测试版”来写入默认值。我遇到的唯一问题是 FacTie 正在生成多个,因为这不是我所期望的。 具有特征数组的输入 Json: 规格: 预期输出: 相反,我得到低于输出(请参阅第二个元素中的FacTie有2个项目而不是一个。