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

JS Lambda中将带\r\n的text/plain转为JSON的实现方法

在AWS Lambda的JavaScript环境中转换text/plain请求体为结构化JSON

需求说明

收到的请求体是text/plain类型,包含以\r\n分隔的键值对(格式为Key=Value),需要将其转换为嵌套的JSON结构,把原body字符串替换为键值对对象。

实现代码

// 示例输入
const lambdaInput = {"body": "TokenId=dsbfjj&s=b+j%f-b*sfwe1we\r\nTaskid=\r\nvalueP=12345\r\nvalueN=89542fgdfgdf\r\n"};

// 解析text/plain格式的body为键值对对象
const parsePlainBody = (plainText) => {
  // 分割所有行,兼容\r\n和\n两种换行符
  const lines = plainText.split(/\r?\n/);
  const parsedData = {};

  lines.forEach(line => {
    // 跳过空行
    if (!line.trim()) return;
    // 找到第一个=的位置,避免值中包含=导致分割错误
    const equalPos = line.indexOf('=');
    if (equalPos === -1) return;

    const key = line.slice(0, equalPos).trim();
    const value = line.slice(equalPos + 1).trim();

    parsedData[key] = value;
  });

  return parsedData;
};

// 生成目标格式的JSON
const lambdaOutput = {
  body: parsePlainBody(lambdaInput.body)
};

// 打印结果(Lambda中可直接返回lambdaOutput)
console.log(JSON.stringify(lambdaOutput, null, 2));

代码关键点

  • 换行符兼容:使用正则/\r?\n/分割,同时支持Windows(\r\n)和Unix(\n)换行格式
  • 空行处理:跳过分割后产生的空行(比如输入末尾的\r\n)
  • 鲁棒性:按第一个=分割键值对,避免值中包含=时出现解析错误
  • 空格处理:对键和值做trim(),自动去除前后多余空格

运行结果

执行代码后会输出符合要求的结构化JSON:

{
  "body": {
    "TokenId": "dsbfjj&s=b+j%f-b*sfwe1we",
    "Taskid": "",
    "valueP": "12345",
    "valueN": "89542fgdfgdf"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:45:38