[英]How to serialize a list to JSON
我需要將數據庫中的查詢序列化為Json格式,如下所示:
{
Facilities:[
{
FacilityID:".....",
desc:"....."
},
....
]
}
但是,我似乎無法在我的代碼中獲得Facilities json數組。 如何編輯我的代碼以顯示設施? 請幫助,謝謝。 我現在的輸出:
[
{
FacilityID:".....",
desc:"....."
},
....
]
如果我添加以下代碼,則不確定如何工作:
Public class FacList
{
public List<FacObject> Facilities;
}
創建吸氣劑和二傳手
public class FacObject
{
public string facilityID { get; set; }
public string departmentID { get; set; }
public string description { get; set; }
public string block { get; set; }
public string level { get; set; }
public string name { get; set; }
public string openHours { get; set; }
public string closeHours { get; set; }
public string maxBkTime { get; set; }
public string maxBkUnits { get; set; }
public string minBkTime { get; set; }
public string minBkUnits { get; set; }
public FacObject(string facid, string depid, string desc, string b, string l, string n
,string o ,string c, string maxt, string maxu, string mint, string minu)
{
this.facilityID = facid;
this.departmentID = depid;
this.description = desc;
this.block = b;
this.level = l;
this.name = n;
this.openHours = o;
this.closeHours = c;
this.maxBkTime = maxt;
this.maxBkUnits = maxu;
this.minBkTime = mint;
this.minBkUnits = minu;
}
}
下面是我的代碼,該代碼從數據庫查詢並將設施列表序列化為json字符串,然后傳遞回調用方! 請幫忙和指教! 幫助將不勝感激:)
protected void Page_Load(object sender, EventArgs e)
{
//To get the string to search in facility table
string departmentID = Request.QueryString["DepartmentID"];
string block = Request.QueryString["Block"];
string level = Request.QueryString["Level"];
string name = Request.QueryString["Name"];
//creates a list of fac object
List<FacObject> sqlFacList = new List<FacObject>();
//test if correct
//Only select from a certain department
//select the database for the list of facility that contains
//block, level, name (%)
using (var db = new KioskContext())
{
var facilitys = from f in db.Facilitys
where f.Department.DepartmentID == departmentID
&& (f.Block.Contains(block) && f.Level.Contains(level)
&& f.Name.Contains(name))
orderby f.FacilityID
select new { f.FacilityID, f.DepartmentID, f.Description, f.Block,
f.Level, f.Name, f.OpenHours, f.CloseHours, f.MaxBkTime, f.MaxBkUnits, f.MinBkTime, f.MinBkUnits};
foreach (var fac in facilitys)
{
FacObject facobject = new FacObject(fac.FacilityID, fac.DepartmentID, fac.Description, fac.Block, fac.Level,
fac.Name, fac.OpenHours, fac.CloseHours, fac.MaxBkTime, fac.MaxBkUnits, fac.MinBkTime, fac.MinBkUnits);
sqlFacList.Add(facobject);
}
}
//Serialize into json format output (string)
string json = JsonConvert.SerializeObject(sqlFacList, Formatting.Indented);
//codes to pass back the json string to the iPad
Response.Write(json);
}
實際上,您在正確的軌道上。 您在帖子中提到創建了FacList類,但是在代碼中沒有使用它。 下面的示例使用該類生成您要查找的確切JSON:
樣例代碼:
var sqlFacList = new FacList();
sqlFacList.Facilities = new List<FacObject>();
sqlFacList.Facilities.Add( new FacObject() { facilityID = "12" });
sqlFacList.Facilities.Add(new FacObject() { facilityID = "34" });
string json = JsonConvert.SerializeObject(sqlFacList, Formatting.Indented);
輸出:
{
"Facilities": [
{
"facilityID": "12",
"departmentID": null,
"description": null,
"block": null,
"level": null,
"name": null,
"openHours": null,
"closeHours": null,
"maxBkTime": null,
"maxBkUnits": null,
"minBkTime": null,
"minBkUnits": null
},
{
"facilityID": "34",
"departmentID": null,
"description": null,
"block": null,
"level": null,
"name": null,
"openHours": null,
"closeHours": null,
"maxBkTime": null,
"maxBkUnits": null,
"minBkTime": null,
"minBkUnits": null
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.