【问题标题】:JOLT remove all but first two fieldsJOLT 删除除前两个字段之外的所有字段
【发布时间】:2021-09-08 20:09:33
【问题描述】:

尝试在 Nifi 中使用 JOLT 从 API 调用中删除某些字段,但无法使其正常工作。以下是 GitHub API 返回的内容:

[
  {
    "login": "sample name",
    "id": "000001",
    "node_id": "ID#",
    "avatar_url": "RETURNED_URL",
    "gravatar_id": "",
    "url": "RETURNED_URL",
    "html_url": "RETURNED_URL",
    "followers_url": "RETURNED_URL",
    "following_url": "RETURNED_URL",
    "gists_url": "RETURNED_URL",
    "starred_url": "RETURNED_URL",
    "subscriptions_url": "RETURNED_URL",
    "organizations_url": "RETURNED_URL",
    "repos_url": "RETURNED_URL",
    "events_url": "RETURNED_URL",
    "received_events_url": "RETURNED_URL",
    "type": "MEMBER_TYPE",
    "site_admin": false
  },
...
 }
]

这是引发错误的 JOLT 规范:

[
   {
      "operation": "remove",
     "spec": {
        "node_id":"",
        "avatar_url":"",
        "gravatar_id":"",
        "url":"",
        "html_url":"",
        "followers_url": "",
        "following_url": "",
        "gists_url": "",
        "starred_url": "",
        "subscriptions_url": "",
        "organizations_url": "",
        "repos_url": "",
        "events_url": "",
        "received_events_url": "",
        "type": "User",
        "site_admin": false
     }
    }
  ]

返回了大约 70 个结果,我需要它为每个结果执行此操作。他们都没有更高级别的密钥,所以我认为是这样,但是我尝试的所有内容似乎都抛出 " 无效,因为规范对所选转换无效

【问题讨论】:

    标签: json apache-nifi jolt


    【解决方案1】:

    您可以选择您需要的字段,或者删除一长串字段。在您的情况下,您可以像这样使用 Jolt Spec:

    [
      {
        "operation": "shift",
        "spec": {
          "*": {
            "login": "[&1].login",
            "id": "[&1].id"
          }
        }
      }
    ]
    

    您也可以使用this jolt demo site 来检查自己。这就是我检查它的方式:

    【讨论】:

    • 不知道存在。谢谢!
    • 现在遇到一个问题:Nifi 说“Shiftr 需要一个 Map 类型的规范,得到 ArrayList”。有任何想法吗?我使用 Jolt Transform Demo 进行了测试,但在 Nifi 中它不执行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2018-12-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多