Decode JSON with jQuery / AJAX

ajax, decode, jquery, json

Solution

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

is not valid JSON !

Assuming you have a valid `JSON` like this

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

You can access the values like this

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

Working sample : http://jsfiddle.net/ncbLF/5/

Use jsonlint to validate JSON

So your code can be simplified to

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

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

Problem

I'm trying to decode a JSON with jQuery. Here's what I get (for instance a class, here with one student): ``` "{"Students":[{"Name":John,"Grade":17,}],"TotalClass":17,"TotalCount":1,}" ``` here's what I do: ``` $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); }); }, }); ``` It keeps saying undefined in the alert (but I recieve the right JSON). Any idea what I'm doing wrong?

Original source