javascript - SyntaxError : JSON. 解析:预期的属性名称或输入值中的 '}'

标签 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 '}'

最佳答案

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 属性值并在其中使用文字 ")

关于javascript - SyntaxError : JSON. 解析:预期的属性名称或输入值中的 '}',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083230/

相关文章:

json - 从 NodeJS 中的 JSON 列表中获取键值

javascript - React 中复杂状态的深度合并

javascript - 如何在新加载的页面上使用相同的 JavaScript 代码(来自重定向)

java - 将 xml 字符串转换为 JSON 字符串,而不使用第三方库

javascript - Jquery:如何将监听器放在 Angular strap datetimepicker 值更改上?

javascript - 仅选择两个选择器之一

c# - 如何将 JSON 字符串转换为 URL 参数(GET 请求)?

javascript - 向 DOM 添加文本时为什么要使用变量?

javascript - JsFunction.apply 不起作用,而 JsObject.callMethod 起作用( Dart )

javascript - 单击旋转图像,jquery