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

如何用JavaScript提取JSON中冒号后的所有值?substring仅返回单个值

解决JavaScript提取JSON字符串中所有输入值的问题

你的问题出在用字符串截取(substring)处理结构化数据——这种方法只能针对单个固定位置的内容,没法灵活处理多个字段。正确的做法是先把这个格式不规范的字符串转换成合法的JS对象,再直接提取值。

具体步骤与代码示例

  1. 清洗不规范的字符串:原始payload内容不是合法JSON(属性名无引号、用中文引号、多余逗号),先做格式修正:
// 原始payload字符串
const rawPayload = "{input : {  InputFieldTitle1 : “Input1”, InputFieldTitle2 : “Input2”, },}";

// 清洗字符串:替换中文引号、给属性名加双引号、移除多余逗号
const cleanedPayload = rawPayload
  .replace(/“|”/g, '"') // 把中文引号换成英文双引号
  .replace(/(\w+)\s*:/g, '"$1":') // 给所有属性名加上双引号
  .replace(/,\s*}/g, '}'); // 去掉对象末尾的多余逗号
  1. 转换为JS对象并提取值:
// 解析成JS对象
const payloadObj = JSON.parse(cleanedPayload);

// 提取所有输入值(返回数组)
const allInputValues = Object.values(payloadObj.input);
console.log(allInputValues); // 输出 ["Input1", "Input2"]

// 也可以单独提取某个字段
const input1 = payloadObj.input.InputFieldTitle1;
const input2 = payloadObj.input.InputFieldTitle2;
console.log(input1, input2); // 输出 Input1 Input2

为什么substring不行?

substring依赖固定字符位置截取,一旦字段顺序变化、内容长度改变,代码就会失效。而转换成对象后,通过属性名访问是结构化数据的标准处理方式,更可靠也更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:17