解析JSON在JavaScript中?


我想解析JavaScript JSON字符串。反应有点像
var response = '{"result":true,"count":1}';
已邀请:

GreatSolar

赞同来自:


大多数浏览器都支持JSON。parse(),是ECMA-262第五版定义(JS是基于规范)。它的用法很简单:

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

alert(obj.count);
对于浏览器不可以使用json2实施

。JS。

评论中指出,如果你已经在使用jQuery,有一美元。parseJSON函数映射到JSON.parse如果在旧的浏览器可用的或一种评价。?然而,这个执行额外的,不必要的检查,也通过JSON.parse,所以最好的综合性能,我建议你使用它就像这样:
var json = '{"result":true,"count":1}',
obj = JSON && JSON.parse(json) || $.parseJSON(json);

caowm

赞同来自:


不使用图书馆你可以使用eval -只有时间你应该使用。它的安全性,使用图书馆例如

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

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

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

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

lnwsz

赞同来自:


首先,你必须确保JSON代码是有效的。之后,我建议你可以使用一个JavaScript库,如jQuery或原型,因为这些东西在图书馆处理好。另一方面,如果你不想使用图书馆,你可以担保的JSON对象的有效性,我只会用一个匿名函数字符串并使用eval函数。这是不是如果你是从另一个源,不是绝对的信任是因为eval函数允许变节的代码如果你将得到的JSON对象推荐。这是使用eval函数的一个例子:
var strJSON = '{"result":true,"count":1}';
var objJSON = eval("(function(){return " + strJSON + ";})()");
alert(objJSON.result);
alert(objJSON.count);

zhuyaqi2006

赞同来自:


如果你得到这种从外部网站可能对使用jQuery的getJSON。如果它是一个列表,您可以遍历它每个

美元。
$.getJSON(url, function (json) {
alert(json.result);
$.each(json.list, function (i, fb) {
    alert(fb.result);
});
});

u010832839

赞同来自:


我以为JSON解析(MyObject)工作。但这取决于浏览器,也可以使用eval('(' + MYOBJECT + ')')。唯一的问题我可以推荐看是JSON的多级列表。

songzhengdong82

赞同来自:


如果你想使用JSON 3旧的浏览器,你可以加载条件:
<script>
window.JSON || 
document.write('<script src="http://stackoverflow.com//cdnjs.cloudflare.com/ajax/libs/json3/3.2.4/json3.min.js"><\/scr'+'ipt>');
</script>

chenxh

赞同来自:


您可以使用eval函数在一些其他的答案。(别忘了加括号。)你就知道为什么当你挖深),或简单地使用jQuery函数parseJSON:
var response = '{"result":true , "count":1}'; 
var parsedJSON = $.parseJSON(response);




可以使用下面的代码

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

evangel_z

赞同来自:


下面的例子将清楚:
var jsontext   = '{"name":"x","age":"11"}';
var getContact = JSON.parse(jsontext);
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11


或者你也可以使用eval函数。下面的例子是使用eval函数:
var jsontext   = '{"name":"x","age":"11"}';
var getContact = eval('(' + jsontext + ')');
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11

vera514514

赞同来自:


如果你使用jQuery,它很简单:
var response = '{"result":true,"count":1}';
var obj = $.parseJSON(response);
alert(obj.result); //true
alert(obj.count); //1

Star_of_Java

赞同来自:


许多人提到的,多数浏览器都支持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)

porsche880828

赞同来自:


如果您使用Dojo

HTTP://dojotoolkit。org /参考指南/ 1.10 /道场/ JSON。HTML

要求([“道场/ JSON”],功能(JSON){
解析JSON。(“{“你好”:“世界”}”,true);

});

songsheping

赞同来自:


一个简单的方法来做到
var data = 'http://stackoverflow.com/questions/4935632/{"result":true,"count":1}';
var json = eval("[" +data+ "]")[0]; // ;)

xiaxiaorui2003

赞同来自:


如果你把一个字符串变量(一个良好的jsonstring)来从MVC @ ViewBag,JSON.parse doublequote”的报价,你需要处理它之前,JSON解析(

jsonstring)。
var jsonstring = '@ViewBag.jsonstring';
jsonstring = jsonstring.replace(/&quot;/g, '"');  

sh5188588

赞同来自:


parse() JSON。将任何JSON字符串传递给函数,一个JSON对象。为了更好地理解按F12打开检查你的浏览器元素去控制台写下面的命令:-
var response = '{"result":true,"count":1}'; //sample json object(string form)
JSON.parse(response); //converts passed string to JSON Object.


现在运行命令:-
console.log(JSON.parse(response));


你会输出对象{结果:真的,数:1 }。

为了使用该对象,你可以将它赋给变量假设目标:-

var obj = JSON.parse(response);
现在利用OBJ和

点(。)你可以访问JSON对象的属性。

尝试运行命令
console.log(obj.result);

要回复问题请先登录注册