繁体   English   中英

数组输入的 Jolt 转换 JSON 规范

[英]Jolt Transform JSON Spec for Array Input

我正在尝试使用无法正常工作的低于规范的 JOLT 换档操作。 不知道我犯了什么错误。 在这种情况下需要帮助。 输出 JSON 作为对象而不是 Array 出现,并且 shift 也没有按预期工作。

    Input : [
      {
        "Header": {
          "Number": 1,
          "Id": "JO"
        },
        "Name": "John"
      },
      {
        "Header": {
          "Number": 2,
          "Id": "JS"
        },
        "Name": "Justin"
      }
    ]
    Spec : [
      {
        "operation": "shift",
        "spec": {
          "*": {
            "Header": "Header",
            "Name": "Header.Name"
          }
        }
      }
    ]
    Expected Output : [
      {
        "Header": {
          "Number": 1,
          "Id": "JO",
          "Name": "John"
        }    
      },
      {
        "Header": {
          "Number": 2,
          "Id": "JS",
          "Name": "Justin"
        }    
      }
    ]
    Actual Output : {
      "Header" : [ {
        "Number" : 1,
        "Id" : "JO",
        "Name" : "John"
      }, {
        "Number" : 2,
        "Id" : "JS"
      } ]
    }

您还必须指定"Header"对象在数组内

此外,为数组的每个元素放置"Header"对象的数组索引。

这就是下面的规范所做的(使用[&1] - apmersand 通配符与数组相结合):

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "Header": "[&1].Header",
        "Name": "[&1].Header.Name"
      }
    }
  }
]

资料来源:

  1. Shiftr.java 文档
  2. 其他答案: “如何使用 Jolt 转换数组?”
  3. 演示应用程序链接在jolt 存储库中以测试规范

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM