2014-01-24 56 views
1

当前我尝试将List对象转换为Json字符串,这让我疯狂对我的ASP.net MVC项目。将C#中的基本对象转换为Json字符串#

型号:

public class PagerBase<T>:List<T> where T:EntityBase 
{ 
    public int totalpage {get;set;} 
    public int pageindex {get;set;} 
    public int pagesize {get;set;} 

    public PagerBase(IEnumerable<T> source, int totalpage , int pageindex ,int pagesize) 
    { 
     this.totalpage = totalpage ; 
     this.pageindex = pageindex; 
     this.pagesize = pagesize; 
     this.AddRange(source); 
    } 
} 

我的动作像这样

public JsonResult GetClient() 
{ 
    int pagesize=20; 
    int pageindex1; 

    var providers = getclient(20,1); 
    var totalpage= gettotalpage(20); 

    var pagerclient=new PagerBase<Client>(providers,totalpage,pageindex,pagesize); 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 

    var jsonstring=serializer.Serialize(pagerclient); 
    JsonResult jr = Json(new 
    { 
     Html = jsonstring, 
     Message = "Ok" 
    }, JsonRequestBehavior.AllowGet); 

    return jr; 
} 

我想导致至少包括totalpagepagesizepageindex但实际上我得到空,如果没有客户端。

+0

我看到了很多这些问题,但仍然无法理解为什么有人使用这个糟糕的'JsonResult'库(除了可能因为它在'system.web.mvc'中,但这不是一个好理由)。如果你愿意使用json.NET,我会提供一个答案,但是'JsonResult'类只是一个笑话,我不会去纠正任何使用它的代码:p – evanmcdonnal

+0

谢谢你回答我的问题,我的问题问题不在于JsonResult。 – Ericyu67

回答

3

JSON不能编码既有属性又是数组的数据。我敢肯定,如果你使用Json.NET你可以写一个custom serializer,但如果可能的话,这将会是容易只是重构类一点:

​​

顺便说一句,我建议您切换到Json.NET。它比JavaScriptSerializer好得多。

+0

好的答案,它的工作原理。 – Ericyu67

+0

顺便说一句,听说很多人都说Json.Net好多了,我想知道Json.Net – Ericyu67

+1

速度,灵活性,易用性等方面有多好。在Json.NET网站的底部附近,它有一个它与其他图书馆的功能列表。我会说你最大的区别就是定制事物的容易性。 –

相关问题