2014-01-24 55 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網站的底部附近,它有一個它與其他圖書館的功能列表。我會說你最大的區別就是定製事物的容易性。 –

相關問題