处理数组中的单个元素或多个元素时的动态抖动

如果我们在PartnerFunction嵌套数组中接收数组,我的Jolt规范工作得非常好,但如果他们发送的JSON只涉及PartnerFunction中的一个元素,那么它就失败了

输入1

{
  "CustomerMaster": {
    "Rootnode": {
      "KUNNR": "123",
      "NAME1": "XXXX",
      "LAND1": "SE",
      "SalesArea": {
        "VKORG": "1301",
        "VTWEG": "10",
        "SPART": "00",
        "AUFSD": "",
        "FAKSD": "",
        "LIFSD": "",
        "PartnerFunction": [
          {
            "PARVW": "RE",
            "PARZA": "000",
            "KUNN2": "1231"
          },
          {
            "PARVW": "RE",
            "PARZA": "000",
            "KUNN2": "1232"
          }
        ]
      }
    }
  }
}

输入2输入2

{
  "CustomerMaster": {
    "Rootnode": {
      "KUNNR": "123",
      "NAME1": "XXXX",
      "LAND1": "SE",
      "SalesArea": {
        "VKORG": "1301",
        "VTWEG": "10",
        "SPART": "00",
        "AUFSD": "",
        "FAKSD": "",
        "LIFSD": "",
        "PartnerFunction": {
          "PARVW": "RE",
          "PARZA": "000",
          "KUNN2": "1231"
        }
      }
    }
  }
}

Jolt Spec I正在使用

[
  {
    "operation": "shift",
    "spec": {
      "CustomerMaster": {
        "Rootnode": {
          "SalesArea": {
            "PartnerFunction": {
              "*": {
                "@(3,KUNNR)": "[&1].KUNNR",
                "@(3,NAME1)": "[&1].NAME1",
                "@(3,NAME2)": "[&1].NAME2",
                "@(3,NAME3)": "[&1].NAME3",
                "@(3,NAME4)": "[&1].NAME4",
                "@(3,LAND1)": "[&1].LAND1",
                "@(2,VKORG)": "[&1].VKORG",
                "@(2,VTWEG)": "[&1].VTWEG",
                "@(2,SPART)": "[&1].SPART",
                "PARVW": "[&1].PARVW",
                "PARZA": "[&1].PARZA",
                "KUNN2": "[&1].KUNN2"
              }
            }
          }
        }
      }
    }
  }
]

如有任何帮助,不胜感激

推荐答案

modify转换中添加一个toList函数作为第一个规范将解决以下问题

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "CustomerMaster": {
        "Rootnode": {
          "SalesArea": {
            "PartnerFunction": "=toList"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "CustomerMaster": {
        "Rootnode": {
          "SalesArea": {
            "PartnerFunction": {
              "*": {
                "@(3,KUNNR)": "[&1].KUNNR",
                "@(3,NAME1)": "[&1].NAME1",
                "@(3,NAME2)": "[&1].NAME2",
                "@(3,NAME3)": "[&1].NAME3",
                "@(3,NAME4)": "[&1].NAME4",
                "@(3,LAND1)": "[&1].LAND1",
                "@(2,VKORG)": "[&1].VKORG",
                "@(2,VTWEG)": "[&1].VTWEG",
                "@(2,SPART)": "[&1].SPART",
                "PARVW": "[&1].PARVW",
                "PARZA": "[&1].PARZA",
                "KUNN2": "[&1].KUNN2"
              }
            }
          }
        }
      }
    }
  }
]

Json相关问答推荐

如何将自定义卡保存到dart/flutter中的共享偏好设置?

如何在PowerShell中扩展JSON中的嵌套数组

如何循环访问多个子数组并在单个JSON中检索数据点

如何在JQ过滤器文件中使用多行?

使用动态和可变JSON的图表多条

将=分隔值文件转换为:json文件

如何使用 SQL Server 将 json 存储为字符串的列分解/规范化为行和列?

如何从字符串中创建一个逗号分隔的列表,由 API 中的 JSON 对象内的编号空格分隔?

在 JOLT 中重新排列值

在Flutter 中将 map 的 Json 转换为 list

在 bash 中将 CSV 转换为 JSON

如何获取json格式的KendoGrid显示数据?

如何在 swift 2 中获取 Alamofire.request().responseJSON 的结果值?

使用 ajax 将 JSON 发送到 PHP

如何安装 json gem - 无法构建 gem 原生扩展(mac 10.10)

使用 application/json 优于 text/plain 的优势?

未调用 npm package.json 脚本

为什么 JavaScript 的 eval 需要括号来判断 JSON 数据?

ASP.NET Web API JSON 输出中没有时间的日期

从 JSON 到 JSONL 的 Python 转换