JSON.Parse вызывает ошибку в JavaScript

0

У меня возникают некоторые проблемы с JSON.Parse в моем коде, и я не могу найти причину этого. У меня есть функция, которая вызывает две функции ajax, одну в начале и другую функцию успеха. Его работа прекрасна, но когда я пытаюсь разобрать второй ответ, код разбивается, не давая никаких ошибок, и настоящей загадкой является JSON.parse(object); dosent дает какую-либо проблему, но когда я использую переменную для хранения результата, как этот var list =JSON.parse(object); мой код сломался, и я не знаю, в чем причина этого, мой текущий код приведен ниже

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;
                }
            });

        }

любая мысль очень поможет

  • 0
    Вы уверены, что response.d - это строка, содержащая JSON? Кстати, return response.d; от обратного вызова не будет никакого эффекта.
  • 0
    @FelixKling положительный
Показать ещё 10 комментариев
Теги:

1 ответ

2
Лучший ответ

Когда вы используете $.ajax с dataType:"json", ответ уже разобран для вас. И, похоже, нет причин пытаться проанализировать response.d.

Просто используйте

$.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);
  • 0
    Я знаю, что ответ сервера представляет собой сериализованную коллекцию, и когда я проверяю response.d, это большая строка
  • 0
    Это строка JSON? Почему вы положили JSON в JSON?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню