为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中解析JSON?

在JavaScript中解析JSON?

桃花长相依 2019-05-21 15:21:21
在JavaScript中解析JSON?我想在JavaScript中解析JSON字符串。响应是这样的var response = '{"result":true,"count":1}';我怎样才能获得的值result,并count从这个?
查看完整描述

4 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

大多数浏览器都支持JSON.parse(),这是在ECMA-262第5版(JavaScript所基于的规范)中定义的。它的用法很简单:

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

    obj = JSON.parse(json);


alert(obj.count);


/* or ES6 */


const json = '{"result":true,"count":1}' || {};

const { result, count } = JSON.parse(json);

alert(result);

alert(count);

对于没有的浏览器,您可以使用json2.js实现它。


如评论中所述,如果您已经在使用jQuery,那么有一个$.parseJSON函数可以映射到JSON.parse可用的或eval旧版浏览器中的一种形式。但是,这会执行额外的,不必要的检查也会执行JSON.parse,因此为了获得最好的全面性能,我建议使用它,如下所示:


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

    obj = JSON && JSON.parse(json) || $.parseJSON(json);

这将确保您JSON.parse立即使用native ,而不是让jQuery在将字符串传递给本机解析函数之前对字符串执行完整性检查。


查看完整回答
反对 回复 2019-05-21
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

首先,您必须确保JSON代码有效。


之后,如果可以的话,我建议使用jQuery或Prototype等JavaScript库,因为这些东西在这些库中得到了很好的处理。


另一方面,如果您不想使用库并且可以保证JSON对象的有效性,我只需将该字符串包装在匿名函数中并使用eval函数。


如果您从另一个不完全信任的源获取JSON对象,则不建议这样做,因为如果您愿意,eval函数允许使用renegade代码。


以下是使用eval函数的示例:


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

var objJSON = eval("(function(){return " + strJSON + ";})()");

alert(objJSON.result);

alert(objJSON.count);

如果您控制正在使用的浏览器,或者您不担心使用旧浏览器的人,则可以始终使用JSON.parse方法。


这真的是未来的理想解决方案。


查看完整回答
反对 回复 2019-05-21
?
智慧大石

TA贡献1946条经验 获得超3个赞

如果从外部站点获取此信息,使用jQuery的getJSON可能会有所帮助。如果它是一个列表,你可以使用$ .each迭代它


$.getJSON(url, function (json) {

    alert(json.result);

    $.each(json.list, function (i, fb) {

        alert(fb.result);

    });

});


查看完整回答
反对 回复 2019-05-21
  • 4 回答
  • 0 关注
  • 1048 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信