使用 JOLT 删除字符串中的转义字符

问题描述 投票:0回答:2

我正在尝试使用替换功能删除特殊字符,但转义字符没有被删除。

输入:

[
  {
    "MiddleName": "Gisela\"mn"
  },
  {
    "MiddleName": "Gisela12---"
  }
]

规格:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "MiddleName": "=replace('(\\-\\s*)|\\s+--',@(1,MiddleName))"
      }
    }
  }
]

我得到的输出:

[
  {
    "MiddleName": "Gisela\"mn"
  },
  {
    "MiddleName": "Gisela12"
  }
]

我需要的输出:

[
  {
    "MiddleName": "Giselamn"
  },
  {
    "MiddleName": "Gisela12"
  }
]
json mapping transformation jolt
2个回答
1
投票

您可以连续使用splitjoin功能,例如

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": "=split('\"',@(1,&))"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": "=join('',@(1,&))"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": "=split('-',@(1,&))"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": "=join('',@(1,&))"
      }
    }
  }
]

1
投票

您可以使用更简单的方法,例如此规范:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "MiddleName_temp1": "=split('\"',@(1,MiddleName))",
        "MiddleName_temp2": "=join('',@(1,MiddleName_temp1))",
        "MiddleName_temp3": "=split('-',@(1,MiddleName_temp2))",
        "MiddleName": "=join('',@(1,MiddleName_temp3))"
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "MiddleName*": ""
      }
    }
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.