Optimus
Optimus

Reputation: 2210

JSON.Parse causes error in javascript

I'm having some problems with JSON.Parse in my code and I cant find the reason of this I have a function which call two ajax functions, one on the start and another on the success function . Its working fine but when I'm try to parse the second one response the code breaks without giving any error and the real mystery is JSON.parse(object); dosent give any problem but when I use a variable to store the result like this var list =JSON.parse(object); my code broke and I dont what is the reason behind this my current code is given below

function getData()
{
            $.ajax({
                type: "POST",
                url: "MyPage.aspx/GetData",
                data: JSON.stringify({ data: data})
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var result = JSON.parse(response.d);
                    var temp = 0;
                    for (var i = 0; i < result.length; i++) {

                        if (result[i].data > 1) {
                            var subList = JSON.parsegetFullData (result[i].id));
                        }

                }
            });
}
     function getFullData (id) {
            var sublist;
            $.ajax({
                type: "POST",
                url: "MyPage.aspx/GetData2",
                data: JSON.stringify({ id: id }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    return response.d;
                }
            });

        }

any thought will help a lot

Upvotes: 0

Views: 1529

Answers (1)

Denys S&#233;guret
Denys S&#233;guret

Reputation: 382464

When you use $.ajax with dataType:"json", the response is already parsed for you. And there doesn't seem to be a reason to try to parse response.d.

Simply use

$.ajax({
           type: "POST",
           url: "MyPage.aspx/GetData",
           data: JSON.stringify({ data: data})
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (results) {
                for (var i = 0; i < results.length; i++) {
                    console.log(results[i].id, results[i].LastName);

Upvotes: 2

Related Questions