【问题标题】:Remove null from array using jolt使用 jolt 从数组中删除 null
【发布时间】:2022-01-20 11:17:34
【问题描述】:

我在使用 jolt 从数组中删除空值时遇到一些问题,如下所述:

输入

{
  "userId": "1",
  "age": "20",
  "firstName": "firstname1",
  "lastname": "lastname1",
  "zipCode": "zipcode1",
  "street": "street1",
  "city": "city1",
  "country": "country",
  "gender": "gender1",
  "grade": "grade1",
  "birthday": "birthday1"
}

颠簸规范

[
  {
    "operation": "shift",
    "spec": {
      "userId": "ID",
      "age": "age",
      "firstName": "firstName",
      "lastname": "lastname",
      "gender": "gender",
      "grade": "grade",
      "birthday": "birthday",
      "street|city|zipCode|country": {
        "$": "address[#2].code",
        "@": "address[#2].value"
      }
    }
  }
]

输出

{
  "ID": "1",
  "age": "20",
  "firstName": "firstname1",
  "lastname": "lastname1",
  "gender": "gender1",
  "grade": "grade1",
  "birthday": "birthday1",
  "address": [ null, null, null, null, null, null, null,
    {
      "code": "street",
      "value": "street1"
    },
    {
      "code": "city",
      "value": "city1"
    },
    {
      "code": "zipCode",
      "value": "zipcode1"
    },
    {
      "code": "country",
      "value": "country"
    }
  ]
}

我得到了@Barbaros 提出的一些解决方案,感谢他在链接中的描述 Remove null values from JSON output using Jolt

但仍在苦苦挣扎,任何帮助将不胜感激。

【问题讨论】:

  • 不客气。

标签: java json apache-nifi jolt


【解决方案1】:

您可以在第一步中使用诸如adr_ 之类的文字作为键值对的前缀,然后在最后一步中使用以区分将由​​"*":"&" 对符号化的其余属性,例如

[
  {
    "operation": "shift",
    "spec": {
      "userId": "ID",
      "*": "&",
      "street|city|zipCode|country": {
        "$": "adr_&.code",
        "@": "adr_&.value"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "adr_*": "address[]"
    }
  }
]

其中只有"userId": "ID" 单独编写,以便根据需要重命名。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2022-01-07
    • 2022-01-19
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    相关资源
    最近更新 更多