【发布时间】:2012-04-12 11:23:16
【问题描述】:
我有一个包含一种方法的网络服务:
[WebMethod]
public string Movies()
{
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>
这是我使用 Kendo 数据源的 jQuery 方法
$(function () {
alert("Welcome To Kendo");
var dataSource = new kendo.data.DataSource(
{
transport: {
read: {
type: "POST",
dataType: "json",
url: "/MovieService.asmx/Movies"
// contentType: "application/json; charset=utf-8"
}
},
change: function (e) {
alert(e);
},
error: function (e) {
alert(e[2]);
},
pageSize: 10,
schema: {
data: "d"
}
});
$("#MovieGridView").kendoGrid({
dataSource: dataSource,
height: 250,
scrollable: true,
sortable: true,
pageable: true,
columns: [
{ field: "Title", title: "Movie Name" },
{ field: "ReleaseDate", title: "Movie Release" }
],
editable: "popup",
toolbar: ["create"]
});
});
上面的代码显示了我在 jQuery 中所做的事情以及当错误事件调用时我得到了这个错误
SyntaxError: JSON.parse: unexpected character
如何将上述数据转换为 JSON,以便在 jQuery 中使用?我哪里错了?
【问题讨论】:
-
为什么在这里使用 JSONP?这没有意义。
-
好的,我删除了 jsonp,但问题还是一样,请解决它
-
我通过使用 WCF 和 JSONP 找到了另一种方法,它非常酷的组合并且完美地工作
-
你需要json和xml或者只有json
标签: c# json web-services asmx javascriptserializer