json 如何Map一个数组的震动,有键和值在其他2个元素的输入数组

fcwjkofz  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(124)

第一次JOLT用户尝试将阵列重新构造为类似的多级阵列。stackoverflow要求更少的代码和更多的单词,所以我希望这个额外的句子涵盖了这一点。

输入

{
  "data": [
    [         // KEYS
      "key1",
      "key2.subkey2.1",
      "key3.0.subkey3.0",
      "key3.1.subkey3.1"
    ],

    [        // VALUES OF above keys
      "valuekey1",
      "valueSubkey2.0",
      "valueSubkey3.0",
      "valueSubkey3.1"
    ]
  ]
}

字符串

期望输出

{
  "key1": "valuekey1",
  "key2": {
    "subkey2.1": "valueSubkey2.0"
  },
  "key3": [
    {
      "subkey3.0": "valueSubkey3.0"
    },
    {
      "subkey3.1": "valueSubkey3.1"
    }
  ]
}


谢谢大家的帮助

nnsrf1az

nnsrf1az1#

您可以使用以下转换:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "0": { // the array already has only one outermost component
          "*": {
            "@(2,[1][&])": "@(3,[0][&1])"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "*.sub*": {
        "@": "&(1,1).sub&(1,2)"
      },
      "*.*.sub*": {
        "@": "&(1,1)[&(1,2)].sub&(1,3)"
      }
    }
  }
]

字符串

  • 在哪里 *

例如,&(1,2)表示从上一级1开始的第2个星号的文字替换

  • 1st规范中:匹配所有相应的对应项,以便代表索引为0的值与使用索引1形成四个单独的键值对
  • 在第2次规范中:按点划分键,但不忽略sub文字

网站http://jolt-demo.appspot.com/上的 * 演示 * 是:


的数据

相关问题