数组数组的 Jolt 转换规范

Jolt Transformation Spec for array of arrays

我有一个 json 输入,预期输出如下。请帮助我生成规范。

输入JSON:

{  
    "Features": [    
      "fields": [
        {
          "name": "featureName"
        },
        {
          "name": "featureVersion"
        },
        {
          "name": "featureLevel"
        },
        {
          "name": "featureComponent"
        }
      ],
      "rows": [
        [
          "checkoutandopeninnative",
          "11R1",
          "1.0.0",
          "CheckoutAndOpenInNative",
          "1.0"
        ],
        [
          "ConfigurationMigration",
          "1.0",
          "1.0.1.68",
          "ConfigMigrationUtility",
          "1.0"
        ]
      ]
    ]    
}

预期输出JSON:

 {
      "Features": [
        {
          "featureName": "checkoutandopeninnative",
          "featureVersion": "11R1",
          "featureLevel": "1.0.0",
          "featureComponent": "CheckoutAndOpenInNative"
        },
        {
          "featureName": "ConfigurationMigration",
          "featureVersion": "1.0",
          "featureLevel": "1.0.1.68",
          "featureComponent": "ConfigMigrationUtility"
        }
      ]
}

请帮我制定规范,以便在颠簸中转换它。我对摇晃很陌生,尝试过几次都没有用。

谢谢, 哈里

说真的,没有谷歌搜索?

说真的,一系列 [[[ ?试试这个验证器:codebeautify.org/jsonviewer

所以:JSON 输入无效。验证器说:E2 ->Error: Parse error on line 1: Parse error on line ^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', 得到 'undefined'

结果:

Parse error on line 3: ...
"fields": [
{

----------------------^
Expecting 'EOF', '}', ',', ']', got ':'

输入语法错误:连续的方括号[[[是错误的,在加深结构的时候;这些应该用大括号插入:[{[{[

看看输出的例子,你自己说:符合规则。

此规范应该适合您:

[
  {
    "operation": "shift",
    "spec": {
      "Features": {
        "rows": {
          "*": {
            "*": "Features[&1].@(3,fields[&].name)"
          }
        }
      }
    }
  }
]

备注:

  • 我假设您的输入应该更像: "Features" : { ... } 不是 "Features": [] @Franta
  • 指出的
  • 查看 https://jolt-demo.appspot.com/,您可以在其中找到上面代码段中使用的运算符示例
  • 另请查看 shiftr docs,您可以在其中找到有关 *&@ 运算符及其高级版本的更多信息

为了在阅读文档时更容易理解: