Javascript 将字符串转换为JSON对象

Javascript 将字符串转换为JSON对象,javascript,json,node.js,Javascript,Json,Node.js,我将json分配给变量,如下所示: var a = "[{a:123}]"; 现在,如果我执行a[0],它给出的结果是[。在执行a=JSON.parse(a)时,它给出的错误是Uncaught SyntaxError:JSON中位置2处的意外标记a 如何将a转换为a=[{a:123}];?这里的问题是您没有有效的JSON 未捕获的SyntaxError:JSON中位置2处的意外标记a 此错误导致字符“a”在此处无效。请参阅 理论上,您可以通过使用eval来实现您的目标,但这是非常不安全的,因为

我将json分配给变量,如下所示:

var a = "[{a:123}]";
现在,如果我执行
a[0]
,它给出的结果是
[
。在执行
a=JSON.parse(a)
时,它给出的错误是
Uncaught SyntaxError:JSON中位置2处的意外标记a


如何将a转换为
a=[{a:123}];

这里的问题是您没有有效的JSON

未捕获的SyntaxError:JSON中位置2处的意外标记a

此错误导致字符“a”在此处无效。请参阅

理论上,您可以通过使用
eval
来实现您的目标,但这是非常不安全的,因为您可以评估字符串中存在的任何代码,所以我不建议这样做

您必须确保获得的JSON有效,或者如果格式无法更改,则可能需要在将字符串传递给JSON.parse之前对其进行预处理

顺便说一句,与出于某种原因而投票表决的另一个答案相反,这里没有
数组。parse

$ node -e 'Array.parse()'
[eval]:1
Array.parse()
      ^    
TypeError: Array.parse is not a function
另见:


    • 这里的问题是您没有有效的JSON

      未捕获的SyntaxError:JSON中位置2处的意外标记a

      此错误导致字符“a”在此处无效。请参阅

      理论上,您可以通过使用
      eval
      来实现您的目标,但这是非常不安全的,因为您可以评估字符串中存在的任何代码,所以我不建议这样做

      您必须确保获得的JSON有效,或者如果格式无法更改,则可能需要在将字符串传递给JSON.parse之前对其进行预处理

      顺便说一句,与出于某种原因而投票表决的另一个答案相反,这里没有
      数组。parse

      $ node -e 'Array.parse()'
      [eval]:1
      Array.parse()
            ^    
      TypeError: Array.parse is not a function
      
      另见:

      您必须更换:

      var a = "[{a:123}]";
      
      作者:

      您必须替换:

      var a = "[{a:123}]";
      
      作者:


      这是因为数组中的对象不是有效的JSON。现在如果它是这个
      var a='[{“a”:123}',
      它就会工作。尝试使用a,这是因为数组中的对象不是有效的JSON。现在如果它是这个
      var a='[{“a”:123}]“
      它会起作用的。请尝试使用“是”,这对我有效,我更改了生成对象的数据查询。谢谢!是,这对我有效,我更改了生成对象的数据查询。谢谢!