我想用JavaScript解析JSON字符串。响应类似于
var response = '{"result":true,"count":1}';
如何从中获取值结果和计数?
我想用JavaScript解析JSON字符串。响应类似于
var response = '{"result":true,"count":1}';
如何从中获取值结果和计数?
当前回答
JSON.parse()将传递给函数的任何JSON字符串转换为JSON对象。
为了更好地理解,请按F12打开浏览器的Inspect Element,然后转到控制台编写以下命令:
var response = '{"result":true,"count":1}'; // Sample JSON object (string form)
JSON.parse(response); // Converts passed string to a JSON object.
现在运行命令:
console.log(JSON.parse(response));
您将得到对象{result:true,count:1}的输出。
为了使用该对象,可以将其分配给变量,例如obj:
var obj = JSON.parse(response);
现在,通过使用obj和dot(.)操作符,您可以访问JSON对象的财产。
尝试运行命令
console.log(obj.result);
其他回答
如果使用jQuery,它很简单:
var response = '{"result":true,"count":1}';
var obj = $.parseJSON(response);
alert(obj.result); //true
alert(obj.count); //1
如果使用DojoToolkit:
require(["dojo/json"], function(JSON){
JSON.parse('{"hello":"world"}', true);
});
如果你愿意
var response = '{"result":true,"count":1}';
var JsonObject= JSON.parse(response);
您可以通过JsonObject使用(.)dot访问JSON元素:
JsonObject.result;
JsonObject.count;
正如许多其他人提到的,大多数浏览器都支持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(以及更旧版本),尽管根据经验,大多数功能似乎都很好。
一种简单的方法:
var data = '{"result":true,"count":1}';
var json = eval("[" +data+ "]")[0]; // ;)