You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NiFi Jolt字符串处理转换需求:清理JSON描述字段的换行、制表符

问题描述

现有如下JSON文档,需要通过NiFi的Jolt Transform进行处理:

{
    "name": "Wine Seller 1",
    "in_stock": "3800",
    "sold": "47",
    "products": [
        {
            "product_id":"001",
            "product_name":"Wine - Maipo Valle Cabernet",
            "description":"Aliquam augue quam, sollicitudin \nvitae, \"consectetuer\" $100eget, rutrum at"
        },
        {
            "product_id":"002",
            "product_name":"Bacardi",
            "description":"Praesent blandit lacinia erat. \n Vestibulum \"sed\" magna"
        }
    ]
}

要求:移除description字段中的所有换行符(\n)、制表符(\t),同时保留字段内的转义双引号(\"),处理后输出示例如下:

{
    "name": "Wine Seller 1",
    "in_stock": "3800",
    "sold": "47",
    "products": [
        {
            "product_id": "001",
            "product_name": "Wine - Maipo Valle Cabernet",
            "description": "Aliquam augue quam, sollicitudin vitae, \"consectetuer\" $100eget, rutrum at"
        },
        {
            "product_id": "002",
            "product_name": "Bacardi",
            "description": "Praesent blandit lacinia erat. Vestibulum \"sed\" magna"
        }
    ]
}
Jolt转换规则

使用以下Jolt规格即可实现需求:

[
    {
        "operation": "modify-overwrite-beta",
        "spec": {
            "products": {
                "*": {
                    "description": "=replaceAll(@(1,description), '[\\n\\t]', '')"
                }
            }
        }
    }
]
规则说明
  • modify-overwrite-beta操作用于修改指定字段的值,同时保留其他字段原有内容不变
  • products.*表示遍历products数组中的每一个元素
  • =replaceAll(@(1,description), '[\\n\\t]', '')调用字符串替换函数,通过正则表达式匹配所有换行符(\n)和制表符(\t),并将其替换为空字符串,实现移除效果的同时不会影响转义双引号

内容的提问来源于stack exchange,提问作者Joby Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:42:13