Чтение данных JSON возвращает в JQuery - PullRequest
3 голосов
/ 07 августа 2010

Я использую следующий код для получения данных в формате json:

$.ajax({
            type: "GET",
            url: "MyService.svc/GetSomeData",
            dataType: "text",
            success: function (data, textStatus) {

                alert("Test: " + data.toString());
            },
            error: function (xhr, textStatus, errorThrown) {
                alert("Error: " + (errorThrown ? errorThrown : xhr.status));
            }
        });

Данные успешно возвращаются на этот вызов, и это выглядит так:

{"d":"test data"}

Я предположил, что я мог получить доступ к данным следующим образом:

var myData = data["d"];

Однако это, кажется, всегда возвращает "undefined". Чего мне не хватает, чтобы получить единственную строку данных «тестовые данные»?

Ответы [ 3 ]

8 голосов
/ 07 августа 2010

Измените dataType: "text", на dataType: "json",

Проблема, с которой вы столкнулись, заключается в том, что хотя возвращаемая строка на самом деле является допустимой JSON, она возвращается в вашу функцию успеха в виде строки.Строки не имеют атрибута с именем d.Что вам нужно сделать, так это преобразовать JSON в объект javascript - что jQuery сделает для вас, если вы скажете, что ожидаете JSON.

5 голосов
/ 07 августа 2010

что произойдет, если вы попробуете data.d?

0 голосов
/ 07 августа 2010

Я думаю, что и Шон, и Тиаго верны: используйте {dataType: "json"} (в ваших параметрах $ .ajax ()) и получите доступ к значению с помощью data.d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...