我使用Jolt将JSON数组转换为JSON数组,但将内部字符串数组列表扁平.下面是用于生成数据的输入、预期输出和抖动.

[
  {
    "name": "St",
    "Subjects": [ "A1" , "A2"]
  },
  {
    "name": "MD",
    "Subjects": [ "B1" , "B2", "B4"]
  }
]

我使用Jolt转换来生成以下输出--它仍然是一个数组--但嵌套的字符串数组是扁平的.

[
  {
    "name": "St",
    "Subject": "A1"
  },
  {
    "name": "St",
    "Subject": "A2"
  },
  {
    "name": "MD",
    "Subject": "B1"
  },
  {
    "name": "MD",
    "Subject": "B2"
  },
  {
    "name": "MD",
    "Subject": "B4"
  }
]

我已经建立了这个震动,但它没有产生预期的结果.

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "name": "[&1].name",
        "Subjects": {
          "*": {
            "*": {
              "$": "[&1].Subject"
            }
          }
        }
      }
    }
  }
]

主题信息不会显示在结果数据上.我已经用了[&1]美元.受制于将受试者分成多个,但所产生的输出没有任何受试者.我是Jolt的新手,如果能帮助我学习语法,我将不胜感激.

推荐答案

您可以遍历100个数组,同时从同一级别获取101个属性的值,例如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "Subjects": {
          "*": {
            "@2,name": "&3.&1.name", // go 2 levels up the tree to grab the related value
            "@": "&3.&1.&2"
          }
        }
      }
    }
  },
  { // get rid of object keys
    "operation": "shift",
    "spec": {
      "*": {
        "*": ""
      }
    }
  }
]

哪里

  • &3表示主数组内的对象的索引,
  • &1表示100数组的索引

现场http://jolt-demo.appspot.com/上的101个是:

enter image description here

Json相关问答推荐

Vegalite中分组条形图中的偏移量问题

NiFi QueryRecord处理器- Select 可选的JSON属性

在Jolt中将具有嵌套元素的对象数组转换为单独的对象列表

如何避免解析 ISuperObject 类型字段中的 json 对象

取消嵌套数组并将数组名称添加为附加字段

jq 中的整个单词匹配

ETCD 导出为 json 并从 base64 解码所有键/值到人类可读

JOLT 转换 - 删除 JSON 数组中的空 node

在 json 嵌入的 YAML 文件中 - 使用 Python 仅替换 json 值

如何删除 django jsonfield 中的特定项目

Swift - 将图像从 URL 写入本地文件

如何判断字符串是否为json格式

如何使用 jq 将 JSON 对象流转换为数组

数据包含连续问号时无法理解的 jQuery $.ajax() 行为

如何向从文件中检索的 JSON 数据添加键值?

将循环 struct 转换为 JSON - 有什么方法可以找到它抱怨的字段?

如何在 Java 中将 YAML 转换为 JSON?

你如何在 Arrays of Arrays 上 OPENJSON

C++:使用 nlohmann json 从文件中读取 json 对象

JSON.stringify 向我的 Json 对象添加额外的 \ 和 "" 的问题