在jQuery中解析JSON对象
在jQuery中解析JSON对象
以下是JSON字符串的示例:
[{"Description":"管理员可以在网站上做任何事情","Id":"381ede0e-3bc1-4d71-83d8-bbb62a3b8aaa","Name":"管理员"},{"Description":"具有有限权限的技术用户a","Id":"7a632af6-214b-4a8e-a3f8-9c0aafae2645","Name":"技术"}]
以下是我的脚本:
//获取用户角色:
$.getJSON('@Url.Action(“GetAUsersRegisteredRoles”)' + '/' + selectedUser,function(json){
console.log('1:');
console.log(json);
//解析JSON
$ .each(json,function(){
$ .each(this,function(k,v){
alert(v.Id + v.Name + v.Description);
})
});
});
我知道我在解析方面做错了什么?
我确定只是一些愚蠢的错误。
这是控制台中JSON数组的视图:
当我在浏览器中运行它时,我的警报弹出窗口会出现6次,并显示NaN。
我查看了这个链接https://stackoverflow.com/questions/733314/jquery-loop-over-json-result-from-ajax-success,它帮助我达到了现在的状态。
问题出现的原因是通过循环枚举列表中的元素,然后再枚举每个元素的属性。实际上只需要一个循环即可解决问题。
解决方法是使用jQuery的$.each()
函数来循环遍历JSON对象。该函数接受两个参数,第一个参数是要循环遍历的对象,第二个参数是一个回调函数,用于处理每个元素。
在回调函数中,可以使用this
关键字来引用当前元素。根据需要,可以通过this
关键字来访问元素的属性。在这个问题中,可以使用this.Id
、this.Name
和this.Description
来分别访问元素的Id、Name和Description属性。
下面是使用$.each()
函数来解决问题的代码示例:
$.each(json, function () { alert(this.Id + this.Name + this.Description); });
以上代码将循环遍历名为json
的JSON对象,并使用alert()
函数来弹出每个元素的Id、Name和Description属性。
通过这样的处理,我们可以避免多余的循环,提高代码的效率。