javascriptserilizer не сериализуется должным образом - PullRequest
0 голосов
/ 28 марта 2012

у меня есть веб-сервис, в котором есть только один метод

 [WebMethod]
        public string GetMovies()
        {
            using (var dataContext = new MovieCollectionDataContext())
            {
                var query = dataContext.Movies.Select(m =>new{m.Title,m.ReleaseDate}).Take(20);
                var serializer = new JavaScriptSerializer();
                return serializer.Serialize(query);
            }
        }

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

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">[{"Title":"SQL","ReleaseDate":"\/Date(1224007200000)\/"},{"Title":"Termonator Salvation","ReleaseDate":"\/Date(1224007200000)\/"}]</string>

я использую кендо, а мой метод jquery

 var dataSource = new kendo.data.DataSource(
                {
                    transport: {
                        read: {
                            type: "POST",
                            dataType: "json",
                            url: "/MovieService.asmx/GetMovies"
                            //contentType: "application/json; charset=utf-8",

                        }
                    },
                    change: function (e) {
                        alert(e);

                    },
                    error: function (e) {
                        alert(e[2]);
                    },
                    pageSize: 10,
                    schema: {
                        data: "d"

                    }

в вышеупомянутом jquery есть ошибка, даже когда он вызывает, я получил эту ошибку

SyntaxError: JSON.parse: unexpected character

пожалуйста, помогите мне получить правильный JSON, пожалуйста, мне действительно нужен правильный JSON, чтобы выполнять свою работу

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

В этой записи блога показано, как вернуть JSON из службы ASMX: http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

И вот запущенный проект, показывающий, как связать Kendo Grid со службой ASMX: https://github.com/telerik/kendo-examples-asp-net/tree/master/grid-web-service-crud

0 голосов
/ 28 марта 2012

Что именно вы пытаетесь разобрать?Весь ответ не будет проанализирован, потому что это XML, а не JSON.Если вы пытаетесь разобрать только значение строкового элемента, вам, вероятно, нужно заключить его в кавычки.

Обновление:

JSON.parse('[{"Title":"SQL","ReleaseDate":"\/Date(1224007200000)\/"},{"Title":"Termonator Salvation","ReleaseDate":"\/Date(1224007200000)\/"}]')

...