2012-10-26 37 views
1

預期的屬性名稱或「}」我有一個像語法錯誤:JSON.parse:從輸入值

<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 '}' 
+0

'parseJSON'解析JSON。你想做相反的事嗎? – Blender

回答

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)