我有一个网络服务,其中只有一种方法
[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>
我使用Kendo和我的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 PLZ我真的需要适当的JSON来完成我的工作
答案 0 :(得分:0)
你究竟要解析什么?整个响应不会解析,因为它是XML,而不是json。如果您只是尝试解析字符串元素的值,那么您可能需要将其包装在引号中。
更新
JSON.parse('[{"Title":"SQL","ReleaseDate":"\/Date(1224007200000)\/"},{"Title":"Termonator Salvation","ReleaseDate":"\/Date(1224007200000)\/"}]')
答案 1 :(得分:0)
此博客文章介绍了如何从ASMX服务返回JSON: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