javascriptserilizer не сериализуется должным образом
У меня есть веб-сервис, в котором есть только один метод
[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);
}
}
это serilize объект, но когда я получаю результат в 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 ответа
В этом сообщении блога показано, как вернуть 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
Что именно вы пытаетесь разобрать? Весь ответ не будет проанализирован, потому что это XML, а не JSON. Если вы пытаетесь разобрать только значение строкового элемента, вам, вероятно, нужно заключить его в кавычки.
Обновить:
JSON.parse('[{"Title":"SQL","ReleaseDate":"\/Date(1224007200000)\/"},{"Title":"Termonator Salvation","ReleaseDate":"\/Date(1224007200000)\/"}]')