我想用JavaScript解析JSON字符串。响应类似于

var response = '{"result":true,"count":1}';

如何从中获取值结果和计数?


当前回答

在不使用库的情况下,您可以使用eval,这是您应该使用的唯一时间。不过使用图书馆更安全。

如。。。

var response = '{"result":true , "count":1}';

var parsedJSON = eval('('+response+')');

var result=parsedJSON.result;
var count=parsedJSON.count;

alert('result:'+result+' count:'+count);

其他回答

如果你愿意

var response = '{"result":true,"count":1}';
var JsonObject= JSON.parse(response);

您可以通过JsonObject使用(.)dot访问JSON元素:

JsonObject.result;
JsonObject.count;

一种简单的方法:

var data = '{"result":true,"count":1}';
var json = eval("[" +data+ "]")[0]; // ;)

正如许多其他人提到的,大多数浏览器都支持JSON.parse和JSON.stringify。

现在,我还想补充一点,如果您正在使用AngularJS(我强烈推荐),那么它还提供了您需要的功能:

var myJson = '{"result": true, "count": 1}';
var obj = angular.fromJson(myJson);//equivalent to JSON.parse(myJson)
var backToJson = angular.toJson(obj);//equivalent to JSON.stringify(obj)

我只是想添加关于AngularJS的内容,以提供另一种选择。注意,AngularJS并不正式支持InternetExplorer8(以及更旧版本),尽管根据经验,大多数功能似乎都很好。

使用parse()方法的最简单方法:

var response = '{"a":true,"b":1}';
var JsonObject= JSON.parse(response);

这是如何获取值的示例:

var myResponseResult = JsonObject.a;
var myResponseCount = JsonObject.b;

在不使用库的情况下,您可以使用eval,这是您应该使用的唯一时间。不过使用图书馆更安全。

如。。。

var response = '{"result":true , "count":1}';

var parsedJSON = eval('('+response+')');

var result=parsedJSON.result;
var count=parsedJSON.count;

alert('result:'+result+' count:'+count);