当前位置: 首页 > 知识库问答 >
问题:

在使用jolt转换json键值对时保留一些键值对

蔚桐
2023-03-14
{ "first_name": {
    "label": "First name",
    "type": "text",
    "value": "John"
  },
  "last_name": {
    "label": "Last name",
    "type": "text",
    "value": "Doe"
  },
  "email": {
    "label": "Email",
    "type": "text",
    "value": "johndoe@gmail.com"
  }
  "id": 123,
  "marital_status": "Single",
  "author_id": null,
  "company": null,
  "address": {
    "city": {
      "label": "city",
      "dom_type": "dropdown",
      "value": "test"
    },
    "state": {
      "label": "state",
      "dom_type": "dropdown",
      "value": "state"
    },
    "country": {
      "label": "country",
      "dom_type": "dropdown",
      "value": "country"
    }
  }
}
{
 "first_name" : "John", "last_name" : "Doe", "email" : "johndoe@gmail.com", 
 "id": 123, "marital_status": "Single", "author_id": null, "company": null,
  "address" : { "city" : "test", "state" : "test", "country" : "test" }
}
[
  {
    "operation": "shift",
    "spec": {
      "address": {
        "*": {
          "@value": "address.&1"
        }
      },
      "*": {
        "@value": "&1"
      }
    }
  }
]
{
     "first_name" : "John", "last_name" : "Doe", "email" : "johndoe@gmail.com", "address" : { "city" : "test", "state" : "test", "country" : "test" }
 }

因为匹配器“*”丢弃简单键值对。我知道我错过了什么。有人帮忙吗?

共有1个答案

陶博赡
2023-03-14

因为匹配器“*”丢弃简单键值对。->它不是丢弃它们,而是匹配它们,但没有找到“value”的子属性。

您的输入数据基本上有3种不同的格式

  1. 地址下面的东西
  2. 单数值的东西,如“id”
  3. 具有嵌套数据的东西
[
  {
    "operation": "shift",
    "spec": {
      "address": {
        "*": {
          "@value": "address.&1"
        }
      },
      "id|marital_status|author_id|company": "&",
      "*": {
        "@value": "&1"
      }
    }
  }
]
 类似资料:
  • 我正在尝试使用 Jolt 转换来转换 Json,在这里寻找一些输入。我正在尝试过滤一个键,该键是另一个属性的值。这是我的输入和预期输出 我看到的输出是 我试过的规格是 但是我没有得到预期的输出。我也尝试了一些其他组合,但未能获得正确的输出。有人能帮忙吗?

  • 我需要使用jolt spec在JSON中将(多个)键转换为值,将值转换为键。做这件事的正确规范应该是什么? 输入: 所需输出:

  • 我似乎正在与光束中的这种模式作斗争。这是一个流式管道。 在高水平上: 消息传入兔子 消息内容包括一个ID和N个S3文件路径 我希望在列出的所有S3文件中产生一些聚合,但结果应该由原始消息键控 向rabbit写一条带有聚合结果的消息,每个传入消息一条 不可避免的是,我最终得到了一些,并希望在上应用一系列,但不要忘记它们最初是由键控的。 我似乎找不到一个通用的“映射KV pcollection的值但保

  • 理想情况下,输入文件应为以下架构: 理想输出: 理想情况下,Key1、key2、key3 应该在那里,但在某些情况下,其中一个或全部可能不存在。示例场景: 输出: 因此,即使该字段不存在,也不要忽略这些字段,只需将其替换为空字符串。通常Jolt转换会忽略不存在的字段。 请帮我解决这个问题。

  • 目前我有以下输入json。我想提取值为attrs.name = Details的对象,并将其附加到输出json中(在attrs数组之外)。目前,虽然我能够将它附加到输出JSON中,但我仍然在attrs中得到该对象的副本。我想要这个副本被删除。 输入 JSON : 属性。name=“详细信息”可以在attrs中按任意顺序排列 输出量的希望值 电流输出 使用的颠簸规格 有没有办法删除仍在 attrs

  • 编辑:键名称是动态的和未知的。 我想获取一个对象,并创建一个字符串数组,将每个键和值连接在一起。 我的键包含下划线,我需要摆脱(我有这部分工作)。我正在努力弄清楚下一步将所有内容连接在一起。(我想我错过了如何从RHS引用键和值?) 输入: 期望输出: 规格: 电流规格输出: