java - 使用 Jolt 重新设置 JSON 对象的父级

标签 java json jolt

我想使用 Jolt 将 JSON 对象下移一级。这是我的输入数据:

{
    "rating": {
        "primary": {
            "value": 3,
            "max": 5
        },
        "quality": {
            "value": 3,
            "max": 7
        }
    }
}

我正在使用以下规范文件:

[
  {
    "operation": "shift",
    "spec": {
      "$": "NEWPARENT"
    }
  }
]

我目前正在生成此输出:

{
  "NEWPARENT" : "root"
}

但是,我的目标是生产:

{
  "NEWPARENT": {
    "rating": {
      "primary": {
        "value": 3,
        "max": 5
      },
      "quality": {
        "value": 3,
        "max": 7
      }
    }
  }
}

任何人都可以帮我创建正确的规范文件吗?

最佳答案

规范

[
  {
    "operation": "shift",
    "spec": {
      "@": "NEWPARENT"
    }
  }
]

仅供引用,您所看到的“根”是 Jolt 处理以下事实的方式的产物:顶级 JSON 输入可以是列表或映射,并且您希望能够转换列表到 map 中(反之亦然)。

因此,jolt“包装”输入,以便它“始终”使用作为输入的值来转换具有单个键“根”的 Map。

关于java - 使用 Jolt 重新设置 JSON 对象的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494231/

相关文章:

json - 使用 Jolt 从第一个数组元素中提取值

java - Android自定义ListView创建

java - 在给定 JDK 8 DateTimeFormatter 的情况下获取原始模式字符串?

javascript - Angular 服务 - 多个查询和求和

json - 在 Freebase 中获取每道菜页面的菜肴列表和详细信息?

json - Jolt 变换 - 如何用字段值重命名字段?

jolt - 如果值不存在则设置为 null,否则如果在 jolt 中存在则返回现有值

java - 如何暂停 ThreadPoolExecutor 中运行的特定线程的工作

java - 将 PrinterJob 对象调整为 BufferedImage 的特定打印格式

python - 传递一个变量以从 Python 中的 JSON 字符串中提取?