1

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

<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 '}'
4

1 回答 1

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 属性值中使用'和使用文字"s 来分隔它)

于 2012-10-26T08:18:16.053 回答