2012-03-28 60 views
0

我有whih在只有一个方法webservice的它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> 

IAM剑道和我的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中有一个错误,即使它调用ig加时赛此错误

SyntaxError: JSON.parse: unexpected character 

请帮我得到适当的JSON PLZ我真的neeed适当的JSON做我的工作

回答

0

究竟是什么你试图解析什么?整个响应不会被解析,因为它是XML,而不是json。如果你试图解析字符串元素的值,那么你可能需要用引号将它包装起来。

更新:

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

+0

可以请你给我看看例子 – 2012-03-28 18:26:19

+0

看到我的编辑问题,实际上我试图做的事情可能是你明白我想传达的东西 – 2012-03-28 18:39:26

+0

你。你回来的数据类型不是json。这就是xml。你需要配置你的服务来返回json。 – 2012-03-28 18:50:04