Javascript JSON.parse错误,键中有美元

Javascript JSON.parse错误,键中有美元,javascript,angularjs,json,Javascript,Angularjs,Json,我正在尝试将字符串“{$Duration:1200,$Opacity:2}”解析为对象 var tr = "{$Duration:1200,$Opacity:2}"; JSON.parse(tr); 异常失败 Unexpected token $ in JSON at position 1. 有没有关于如何处理这种情况的建议?将它们包装到“中。这是一种JSON语法,将每个键和值包装到“”。您可以在不使用“”的情况下输入数字和布尔值 var str=JSON.parse(“{“$Durat

我正在尝试将字符串
“{$Duration:1200,$Opacity:2}”
解析为对象

var tr = "{$Duration:1200,$Opacity:2}";
JSON.parse(tr); 
异常失败

Unexpected token $ in JSON at position 1.
有没有关于如何处理这种情况的建议?

将它们包装到
中。这是一种
JSON语法
,将每个键和值包装到
“”
。您可以在不使用
“”
的情况下输入数字和布尔值

var str=JSON.parse(“{“$Duration”:“1200”,“$Opacity”:“2”}”);
console.log(str)将它们包装到
中。这是一种
JSON语法
,将每个键和值包装到
“”
。您可以在不使用
“”
的情况下输入数字和布尔值

var str=JSON.parse(“{“$Duration”:“1200”,“$Opacity”:“2”}”);

console.log(str) 您应该用“代码> > <代码> > <代码> >代码>单引号也不起作用。如果您有控制生成字符串的操作。请修改如下。如果没有,您应该考虑使用正则表达式。

var a=JSON.parse(“{$Duration:1200,$Opacity:2}”);

console.log(a);
您应该用
将钥匙/道具括起来<代码>“
单引号也不起作用。如果您可以控制生成字符串。修改如下。如果不是,您应该考虑使用ReGEX。
var a=JSON.parse(“{$Duration:1200,$Opacity:2}”);

控制台日志(a)在JSON中,对象键和字符串需要在双引号内

试试这个

JSON.parse('{ "$Duration": 1200, "$Opacity": 2 }');

在JSON中,对象键和字符串需要在双引号内

试试这个

JSON.parse('{ "$Duration": 1200, "$Opacity": 2 }');

或者您可以简单地
JSON.stringify()
it,然后
JSON.parse()
无需在任何地方添加额外的引号。在代码段下面运行

var-app=angular.module('app',[]);
应用程序控制器('Ctrl',函数($scope){
var str=JSON.stringify({$Duration:1200,$Opacity:2});
$scope.list=JSON.parse(str);
log(JSON.parse(str));
});

{{list}}
{{list.$Duration}}-{{list.$Opacity}


或者您可以简单地
JSON.stringify()
it,然后
JSON.parse()
无需在任何地方添加额外的引号。在代码段下面运行

var-app=angular.module('app',[]);
应用程序控制器('Ctrl',函数($scope){
var str=JSON.stringify({$Duration:1200,$Opacity:2});
$scope.list=JSON.parse(str);
log(JSON.parse(str));
});

{{list}}
{{list.$Duration}}-{{list.$Opacity}



它们应该被包装在
之间。
这不是一个有效的JSON。你从哪里得到这个“JSON”字符串?我正在使用JSOR滑块并尝试使用不同的转换。不同的转换有不同的字符串。它们应该被包装在
之间。
这不是一个有效的JSON。你从哪里得到这个“JSON”我正在使用jssor滑块并尝试使用不同的转换。不同的转换具有不同的字符串<代码>1200
2
无需引用。它们将被解析为数字。字符串是输入。有没有简单的方法可以修改上面提到的字符串?如果它是一个输入字符串,为什么需要从json解析它?目标接受对象{$Duration:1200,$Opacity:2}如果目标接受,则不需要解析,而是将字符串字符串字符串化为json对象,而pass
1200
2
无需引用。它们将被解析为数字。字符串是输入。有没有简单的方法可以修改上面提到的字符串?如果它是一个输入字符串,为什么需要从json解析它?目标接受对象{$Duration:1200,$Opacity:2}如果目标接受,则不需要解析,而是将字符串字符串字符串化为json对象,这行的最后一位没有给我一个JSON对象这行的最后一位没有给我一个JSON对象字符串是输入。有没有简单的方法来修改前面提到的字符串above@pankajt,钥匙修好了吗?如果是这样的话,是的,我可以提供一个解决方案。我没有一个合适的解决方案。雪人想到了使用keyObjectMap的类似方法。我一直在寻找更简单的东西,因为我有太多这样的字符串。谢谢你的邀请help@pankajt,更新后的代码段应使用多种键。字符串是输入。有没有简单的方法来修改前面提到的字符串above@pankajt,钥匙修好了吗?如果是这样的话,是的,我可以提供一个解决方案。我没有一个合适的解决方案。雪人想到了使用keyObjectMap的类似方法。我一直在寻找更简单的东西,因为我有太多这样的字符串。谢谢你的邀请help@pankajt,更新后的代码段应可用于各种键