我有这个问题.

给定此JSON示例

[
  {
    "aaa": "-",
    "name": "something_val",
    "bbb": "-",
    "is_active": true,
    "repository": null,
    "image_url": "some_val",
    "ccc_id_tmp": 2,
    "ddd_id_tmp": 3,
    "ccc_created_at": "timestamp",
    "updated_at": "timestamp",
    "result_ccc_id_lookup": {
      "ccc_id": "some_uuid"
    },
    "result_ddd_id_lookup": {
      "ddd_id": "some_uuid"
    }
  },
  {
    "aaa": "hi",
    "name": "something_val",
    "bbb": "yooo",
    "is_active": false,
    "repository": null,
    "image_url": "some_val",
    "ccc_id_tmp": 4,
    "ddd_id_tmp": 5,
    "ccc_created_at": "timestamp",
    "updated_at": "timestamp",
    "result_ccc_id_lookup": {
      "ccc_id": "some_uuid_2"
    },
    "result_ddd_id_lookup": {
      "ddd_id": "some_uuid_2"
    }
  }
]

我们的目标是使用Jolt转换来提取100101内部的值,这意味着我将提取102103值.

因此,预期yields 将如下所示

{
  "aaa": "-",
  "name": "something_val",
  "bbb": "-",
  "is_active": true,
  "repository": null,
  "image_url": "some_val",
  "ccc_id_tmp": 2,
  "ddd_id_tmp": 3,
  "ccc_created_at": "timestamp",
  "updated_at": "timestamp",
  "ccc_id": "some_uuid",
  "ddd_id": "some_uuid"
}

现在,我正在使用这个Jolt转换来提取与预期输出类似的值

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "aaa": "[&1].aaa",
        "bbb": "[&1].bbb",
        "objective": "[&1].objective",
        "is_active": "[&1].is_active",
        "repository": "[&1].repository",
        "image_url": "[&1].image_url",
        "ccc_id_tmp": "[&1].ccc_id_tmp",
        "ddd_id_tmp": "[&1].ddd_id_tmp",
        "ccc_created_at": "[&1].ccc_created_at",
        "updated_at": "[&1].updated_at",
        "result_ccc_id_lookup": {
          "ccc_id": "[&1].ccc_id"
        },
        "result_ddd_id_lookup": {
          "ddd_id": "[&1].ddd_id"
        }
      }
    }
  }
]

但是,yields 只是这样的.100101航班失踪

{
  "aaa": "-",
  "name": "something_val",
  "bbb": "-",
  "is_active": true,
  "repository": null,
  "image_url": "some_val",
  "ccc_id_tmp": 2,
  "ddd_id_tmp": 3
}

你能帮我做这件事吗?也许我的颠簸变形出了什么问题?

谢谢

推荐答案

不需要逐个阐明每个属性,但以下转换足以表达所有属性

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[&1].&",  // replicate all attributes those have the key which don't start with "result" 
        "result*": {    // other elements taken from the deeper level of one step
          "*": "[&2].&" // so increment the degree of identifier by 1, eg. [&1]->[&2]
        }
      }
    }
  }
]

站点http://jolt-demo.appspot.com/上的101是:

enter image description here

Json相关问答推荐

合并二维数组的Jolt表达式

Jolt将键和值转换为单独的数组集

PowerShell脚本未按预期生成预期的JSON输出

写入JSON文件的流

Jolt Spec 跳过数组中的第一个元素

使用 jq 获取所有嵌套键和值

Vega-Lite规范:尽管在规范中提供了数据,但显示空图表

如何使用 SQL Server 将 json 存储为字符串的列分解/规范化为行和列?

如何比较 JSON 文档并返回与 Jackson 或 Gson 的差异?

JSON Schema 与 XML Schema 的比较及其future

python,将Json写入文件

将 JSON 数据导入 Google 表格

JSON.NET JsonConvert 与 .NET JavaScriptSerializer

字符串的 Gson 数组到 JsonArray

将 CoffeeScript 项目转换为 JavaScript(不缩小)?

关于使用 $ref 的 JSON 模式

在 Java 中比较两个 JSON 文件的最佳方法

如何使用 Gson 解码具有未知字段的 JSON?

ASP.NET Web API JSON 输出中没有时间的日期

通过url获取json数据并在python中使用(simplejson)