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

Mule 4如何移除payload开头特殊字符/前缀 提取标准JSON结构

JSON前缀无关字符移除方案

核心逻辑非常简单:不需要针对乱码做特殊编码转换或者逐字符过滤,只要定位到原始字符串里第一个左大括号{的下标位置,从这个位置开始截取到字符串末尾,就能得到你需要的、从{起始的完整JSON内容。

常用语言实现代码

  • Python
def clean_json(raw_content: str) -> str:
    brace_pos = raw_content.find("{")
    if brace_pos == -1:
        raise ValueError("内容中无合法JSON对象")
    return raw_content[brace_pos:]

# 测试用例
raw = '''�~�{
  "Employee": "Sara",
  "number": {
    "id": "d1q2",
    "designation": "CYUL"
      }
}'''
print(clean_json(raw))
  • JavaScript/Node.js
const cleanJson = (rawContent) => {
  const bracePos = rawContent.indexOf("{");
  if (bracePos === -1) throw new Error("内容中无合法JSON对象");
  return rawContent.slice(bracePos);
}

// 测试用例
const raw = `�~�{
  "Employee": "Sara",
  "number": {
    "id": "d1q2",
    "designation": "CYUL"
      }
}`;
console.log(cleanJson(raw));
  • Java
public class JsonCleanUtil {
    public static String cleanJsonPrefix(String rawContent) {
        int bracePos = rawContent.indexOf("{");
        if (bracePos == -1) throw new IllegalArgumentException("内容中无合法JSON对象");
        return rawContent.substring(bracePos);
    }

    public static void main(String[] args) {
        String raw = "�~�{\n" +
                "  \"Employee\": \"Sara\",\n" +
                "  \"number\": {\n" +
                "    \"id\": \"d1q2\",\n" +
                "    \"designation\": \"CYUL\"\n" +
                "      }\n" +
                "}";
        System.out.println(cleanJsonPrefix(raw));
    }
}

补充说明

  • 这个方案不会修改{之后的任何内容,不会破坏原有JSON的结构和字段值
  • 截取完成后可以直接调用对应语言的原生JSON解析方法校验结果,如果解析失败,说明{之后的内容本身存在JSON语法错误,和前缀乱码无关
  • 如果你处理的payload可能返回JSON数组(首个有效字符是[),只需要调整定位逻辑,同时查找第一个{和第一个[的位置,取更小的下标做截取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 00:24:31