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

jQuery传递输入值时如何去除单引号,生成正确对象数组格式

解决方法

问题核心是你从输入框拿到的是字符串类型的内容,直接放进数组里只会把整个字符串作为单个元素,而非解析成对象数组。要解决这个问题,需要把字符串转换成合法的JavaScript对象数组,步骤如下:

  1. 修正JSON格式:输入框里的{id:66},{id:57}不符合标准JSON规范(JSON要求对象的键必须用双引号包裹),先把属性名id替换成带双引号的"id"。
  2. 包裹成数组JSON字符串:给处理后的字符串前后加上方括号,让它变成数组形式的JSON字符串。
  3. 解析为JS对象数组:用JSON.parse()把合法的JSON字符串转换成真正的JavaScript数组。

修正后的代码

var testStr = $("#test").val();
// 把id:替换为"id:",生成合法JSON格式的字符串
var validJson = "[" + testStr.replace(/id:/g, '"id":') + "]";
// 解析为对象数组
var categories = JSON.parse(validJson);

var newproduct = {
    status: status,
    price: 500,
    regular_price: 450,
    sale_price: 0,
    categories: categories
};

额外说明

如果能修改输入框的value属性,直接写成标准JSON格式会更简单:

<input type="text" id="test" value='[{"id":66},{"id":57}]' />

这时只需要直接解析即可:

var categories = JSON.parse($("#test").val());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:25:24