如何在Angularjs中将字符串转换为对象

16

我有一个字符串,类似于:

$scope.text = '"{\"firstName\":\"John\",\"age\":454 }"';

我想将其转换为js对象:

 $scope.tmp =  {"firstName":"John","age":454 };

注意: JSON.parse() 无法使用!! 这是我在 codepen 中的示例。

JSON.parse() 是我认为你正在寻找的。此外,这是一个重复的问题。 - evolutionxbox
这不是完全重复的问题。OP要求在其框架(angular)内寻找最佳答案。我知道JSON.Parse()可以工作,但出于某些原因,还有其他方法可以在angular中实现它。 - Deblaton Jean-Philippe
@evolutionxbox,JSON.parse() 不起作用。 - Ehsan Ali
1
这是由于额外的引号。去掉外部单引号,然后 JSON.parse 就可以工作了。 - evolutionxbox
1个回答

24

您可以使用angular.fromJson()来完成。

在您的示例中,应为$scope.tmp = angular.fromJson($scope.text);

JSON.Parse()angular.fromJson之间的区别在于,AngularJS将检查是否提供了一个字符串。如果已经是对象,则返回相同的对象。


请检查您在我的 [http://codepen.io/essvision/pen/PzjGpQ] 中的答案。 - Ehsan Ali
1
你需要移除字符串周围的单引号才能使其正常工作:$scope.text = "{\"firstName\":\"John\",\"age\":454 }"; - Deblaton Jean-Philippe
神奇般地工作! - Moses Ndeda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接