我有一些问题。当我尝试发布json对象时,我有错误:错误: SyntaxError:JSON.parse:意外字符
我的javascript对象:
var $arr_data = {
title: '',
category: '',
about: '',
sex: 'unisex',
accessories: 'no',
quantity: []
};
我认为这个功能存在问题:
function data_quantity($size_input,$quant_input)
{
var $string = "{color:'"+$pattern+"',size:'"+$size_input+"',quantity:'"+$quant_input+"'}";
$arr_data.quantity.push($string);
}
alert(JSON.stringify($arr_data));
返回以下字符串:
{
"title":"title_test",
"category":"3",
"about":"about_test",
"sex":"woman",
"accessories":"no",
"quantity":[
"{color:'none',size:'xxl',quantity:'5'}",
"{color:'black',size:'xxl',quantity:'1'}",
"{color:'white',size:'s',quantity:'9'}"
]
}
答案 0 :(得分:4)
您应该在数组中添加一个对象而不是JSON字符串:
var $string = {
color: $pattern,
size: $size_input,
quantity: $quant_input
};
您正在将javascript对象与JSON字符串混合在一起。使用JSON.stringify
,您的对象将转换为字符串。
另外,作为旁注,为什么要在所有变量中添加$
前缀?这是javascript而不是php,所以不需要那样。您可以使用它来标记jQuery对象,但对正常变量没有意义。