2013-10-11 62 views
0

我必須找到一個問題的適當辦法讓我的動態數據到列表這是可以接受的jQuery的jqGrid閱讀:填補動態列表類的數據爲JSON列表

我至今:

[WebMethod] 
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
    public List<DynamicClass> InvokeData(string q)//, out List<dynamic> list) 
    { 
     DataSet OutResult = null; 
     string _function = "ex_medicals"; 
     string[] qSplit = q.Split('&'); 
     _sqlSupporter._ConvertForSending(Convert.ToInt32(qSplit[1]), qSplit[0], _function, out OutResult); 
     //DataSet _return = _ConvertForSending(1, q, _function); 
     OutResult.Tables[0].TableName = OutResult.Tables[0].Rows[0]["name"].ToString(); 
     OutResult.Tables[1].TableName = OutResult.Tables[0].Rows[1]["name"].ToString(); 
     DataTable _data = OutResult.Tables["general"]; 
     List<DynamicClass> DynamicClassList = new List<DynamicClass>(); 
     ToObject dyna = new ToObject(); 
     int i = 0; 
     List<object> myObj = new List<object>(); 
     foreach (DataRow r in _data.Rows) 
     { 
      DynamicClass dynamicClass = new DynamicClass(); 
      dyna.ConvertRowToCustomer(r, out dynamicClass); 
      DynamicClassList.Add(dynamicClass); 
     } 
     return DynamicClassList; 
    } 

我想回到這個:

List<Object> Gridist = new List<Object>(); 

     Gridist.AddRange(new Object[]{ 
     new {id="1",name="Medical 1",city="Kiev",instituteTypeId="0"}, 
     new {id="2",name="Medical 2",city="Kherson",instituteTypeId="0"} 
     }); 

我已經所有的數據在我DynamicClassList(http://imgur.com/OtPFtAo),但是不知道如何得到它進入Gridist在該規範因爲我的jqGrid需要這種類型的數據。 ONE NOTE:我需要使用DynamicClassList列表中的鍵和值,因爲這兩個值都是動態的。

UPDATE:我補充說:

var iSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
string iJSON = iSerializer.Serialize(dynamicClass.Property.properties); 
Gridist.Add(new Object[] { new { iJSON } }); 

IJson返回字符串完整然而iJSON看起來現在這個樣子,是不是一個對象: [{ 「iJSON」: 「{\」 ID \「: 1,「name」:「Medical 1」,「city」:「Kiev」,「instituteTypeId」:0}「},{」xJSON「:」{\「id \」 :1,「name」:「Medical 1」,「city」:「Kiev」,「instituteTypeId」:0}「}]

任何幫助將不勝感激。

+0

哪裏JSON? – weston

+0

我想要返回它的數據已經可讀取的Web響應沒有進一步轉換 –

回答

0

你的web方法應該返回Json,你應該將你的列表對象序列化爲json字符串。您可以使用像ServiceStack.Text或Json.Net這樣的json序列化程序。

例如:

 var obj = new {Name = "x", Data = "asd"}; 
     Console.WriteLine(ServiceStack.Text.JsonSerializer.SerializeToString(obj)); 
+0

是的,我知道,我試圖找出的部分是如何從我的動態方法生成(在你的例子中)var obj,儘快我可以生成,它會工作,請注意,這是一個WebMethod與響應[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]所以序列化不是必需的 –