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

JavaScript中如何将含等号的Kafka返回字符串转换为合法JSON

JavaScript转换实现方案

核心实现代码

function kafkaStr2Json(inputStr) {
  // 清理首尾多余符号(单引号、大括号)
  const rawContent = inputStr.replace(/^['{]+|['}]+$/g, '').trim();
  // 拆分所有键值对
  const pairs = rawContent.split(',').map(item => item.trim());
  const res = {};

  pairs.forEach(pair => {
    const [key, val] = pair.split('=').map(i => i.trim());
    // 自动识别数值类型,否则保留字符串
    res[key] = !isNaN(Number(val)) ? Number(val) : val;
  });
  return res;
}

测试验证

// 传入示例输入
const input = '{device_id=D_2021_A07, key=tele_metrics, sensor_1=62, sensor_2=23}';
const result = kafkaStr2Json(input);
// 打印格式化后的JSON
console.log(JSON.stringify(result, null, 4));

运行后输出符合要求的标准JSON:

{
    "device_id": "D_2021_A07",
    "key": "tele_metrics",
    "sensor_1": 62,
    "sensor_2": 23
}

逻辑说明

  • 首先对输入字符串做预处理,移除首尾的单引号、大括号等冗余符号
  • 按逗号拆分出所有独立的键值对,同时清理每一项前后的空格
  • 对每一个键值对按等号拆分出键和值,对值做类型判断:可转为合法数字则存储为数值类型,否则存储为字符串类型
  • 最终输出的JS对象可直接通过JSON.stringify()方法转为标准JSON字符串使用

注:如果业务场景中存在值包含逗号、等号的情况,可调整拆分逻辑适配更复杂的输入格式,当前实现完美适配给出的示例输入场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:36:01