将数据从动态列表类填充到 Json 列表
本文关键字:列表 填充 Json 动态 数据 | 更新日期: 2023-09-27 18:34:57
我有一个问题,无法找到正确的方法来将我的动态数据放入jQuery jqGrid可以接受的列表中:
到目前为止,我有:
[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 (https://i.stack.imgur.com/YjZoG.jpg( 中已经有所有数据,但是不知道如何以这种特定方式将其放入 Gridist,因为我的 jqGrid 需要这种类型的数据。一个注意:我需要使用动态类列表列表中的键和值,因为这两个值都是动态的。
更新:我添加了:
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}"}]任何帮助将不胜感激。
您的 Web 方法应返回 Json,并且应将列表对象序列化为 json 字符串。您可以使用 json 序列化程序,如 ServiceStack.Text 或 Json.Net。
例:
var obj = new {Name = "x", Data = "asd"};
Console.WriteLine(ServiceStack.Text.JsonSerializer.SerializeToString(obj));