使用jQuery / AJAX解码JSON

我正在尝试使用jQuery解码 JSON.
这是我得到的(例如一个班级,这里有一个学生):
"{"Students":[{"Name":John,"Grade":17,}],"TotalClass":17,"TotalCount":1,}"

这是我的所作所为:

$j.ajax({
    type: 'POST',url: 'class.aspx/getClass',contentType: 'application/json; charset=utf-8',dataType: 'json',success: function (msg) {
        $j.each(msg,function (index,element) {
            alert(element.TotalClass);
        });
    },});

它一直在警告中说未定义(但我收到了正确的JSON).知道我做错了什么吗?

解决方法

{"Students":[{"Name":John,}

是无效的JSON!

假设你有一个像这样的有效JSON

{
    "Students": [
        {
            "Name": "John","Grade": "17"
        }
    ],"TotalClass": " 17","TotalCount": "1"
}

您可以像这样访问这些值

alert("TotalClass : "+msg.TotalClass);
//loop thru students
$.each(msg.Students,function(index,item){
   alert(item.Name+ " - "+item.Grade)
});

工作样本:http://jsfiddle.net/ncbLF/5/

使用jsonlint验证JSON

所以你的代码可以简化为

$.getJSON("class.aspx/getClass",function(msg){

    alert("TotalClass : "+msg.TotalClass);
    $.each(msg.Students,item){
        alert(item.Name+ " - "+item.Grade)
    });
});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...