我想用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);
其他回答
如果您想将JSON 3用于较旧的浏览器,可以通过以下方式有条件地加载:
<script>
window.JSON ||
document.write('<script src="//cdnjs.cloudflare.com/ajax/libs/json3/3.2.4/json3.min.js"><\/scr'+'ipt>');
</script>
现在,无论客户端运行什么浏览器,都可以使用标准的window.JSON对象。
在JavaScript中解析JSON的标准方法是JSON.parse()
JSON API是在ES5(2011)中引入的,目前已在超过99%的浏览器(按市场份额)和Node.js中实现。它的用法很简单:
const json=“{”水果“:”菠萝“,”手指“:10}”;const obj=JSON.parse(JSON);控制台日志(obj.fruit,obj.fingers);
唯一一次不能使用JSON.parse()的情况是,如果您正在为古老的浏览器进行编程,例如IE 7(2006)、IE 6(2001)、Firefox 3(2008)、Safari 3.x(2009)等。或者,您可能处于一个不包含标准API的深奥JavaScript环境中。在这些情况下,使用JSON的发明人Douglas Crockford编写的JSON参考实现json2.js。该库将提供JSON.parse()的实现。
当处理非常大的JSON文件时,JSON.parse()可能会因其同步特性和设计而窒息。为了解决这个问题,JSON网站推荐使用Oboe.js和clarinet等第三方库,它们提供流式JSON解析。
jQuery曾经有一个$.parseJSON()函数,但在jQuery 3.0中已弃用。无论如何,在很长一段时间里,它只是JSON.parse()的包装器。
正如许多其他人提到的,大多数浏览器都支持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(以及更旧版本),尽管根据经验,大多数功能似乎都很好。
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);
在不使用库的情况下,您可以使用eval,这是您应该使用的唯一时间。不过使用图书馆更安全。
如。。。
var response = '{"result":true , "count":1}';
var parsedJSON = eval('('+response+')');
var result=parsedJSON.result;
var count=parsedJSON.count;
alert('result:'+result+' count:'+count);