SyntaxError:JSON.parse:期望的属性名称或来自输入值的'}'

时间:2012-10-26 08:16:12

标签: javascript jquery json

我有一个隐藏的输入字段,如

<input type="hidden" name="product-data" value="{Product: 'Premium', Code: 'ER412', SalesCode: 'SC415', Description: 'Premium Product Details'}" />

单击按钮我试图将此值转换为JSON对象但收到错误。这是我的js代码

$('.icon-edit').live('click', function(){

        var data = $(this).parent().siblings('input').val();
        data = jQuery.parseJSON(data); // <--- Here I am getting error
        //do something with data

    });

错误:

SyntaxError: JSON.parse: expected property name or '}'

1 个答案:

答案 0 :(得分:4)

JSON属性名称是字符串,JSON字符串由"个字符分隔。

您的属性名称是标识符,如果您有字符串值,则使用'对其进行分隔。这适用于JavaScript对象文字,但不适用于JSON。

<input 
    type="hidden" 
    name="product-data" 
    value="{&quot;Product&quot;: &quot;Premium&quot;, &quot;Code&quot;: &quot;ER412&quot;, &quot;SalesCode&quot;: &quot;SC415&quot;, &quot;Description&quot;: &quot;Premium Product Details&quot;}" 
/>

(您还可以使用'分隔HTML属性值,并在其中使用文字"