NET+EF+MVC開發介面輸出json資料時定義實體類的巢狀用法

我們在用NET+EF+MVC開發介面的時候 ,尤其是get介面輸出 json資料的時候,需要先定義實體類進行出輸出 ,可能json資料分多層,外層,內層迴圈,內層單個實體類等,其實無論json資料有多少層,我們只要將實體類定義好層次就可以了。下邊筆者給出一個簡單的定義實體類的方法,供大家參考:

本例子透過get介面獲取機器人的相關資訊,json格式如下:

NET+EF+MVC開發介面輸出json資料時定義實體類的巢狀用法

NET+EF+MVC開發介面輸出json資料時定義實體類的巢狀用法

一、外層實體類,

public class M_bbw_host

{

///

/// 子公司ID

///

[JsonConverter(typeof(DecimalConvert))]

public Nullable subsidiary_id { get; set; }

///

/// 總部ID

///

[JsonConverter(typeof(DecimalConvert))]

public decimal TrialID { get; set; }

///

/// 幼兒園ID

///

[JsonConverter(typeof(DecimalConvert))]

public decimal KindergartenID { get; set; }

///

/// 幼兒園名稱

///

public string kindergartenName { get; set; }

///

/// 自動開機時間

///

public string up_time { get; set; }

///

/// 自動關機時間

///

public string close_time { get; set; }

///

/// 識別方式 1:網路優先 2:僅線上識別 3:離線識別

///

public Nullable Recognition { get; set; }

///

/// len值

///

public double len { get; set; }

///

/// 是否開啟狀態列 0:未開啟 1:開啟(預設)

///

public Nullable isOpenStatusBar { get; set; }

///

/// 是否開啟除錯 0:未開啟(預設) 1:開啟

///

public Nullable isDebug { get; set; }

///

/// 考勤時間列表

///

public List attendancetimelist { get; set; }

///

/// 體質標準資訊

///

public List constitutionlist { get; set; }

///

/// 入園時間

///

// public string babyentertime { get; set; }

///

/// 離園時間

///

// public string babyleavetime { get; set; }

//教師工作時間物件

public M_teacher_worktime m_teacher_worktime { get; set; }

}

二、內嵌的列表類 public List attendancetimelist { get; set; }

[Serializable]

public class Api_attendancetime

{

///

/// 型別 0:晨檢 1:午檢 2:晚檢

///

public int testingtype { get; set; }

///

/// 提示文字

///

public string message { get; set; }

///

/// 開始日期

///

public string StartDate { get; set; }

///

/// 結束日期

///

public string EndDate { get; set; }

}

[Serializable]

public class M_basic_param

{

///

/// 0:體溫 1:身高 2:體重

///

public int type { get; set; }

///

/// 標題

///

public string title { get; set; }

///

/// 性別 -1 :不分性別

///

public int sex { get; set; }

///

/// 最低年齡

///

public int minAge { get; set; }

///

/// 最高年齡

///

public int maxAge { get; set; }

///

/// 最低值

///

public decimal lower_limit { get; set; }

///

/// 最高值

///

public decimal upper_limit { get; set; }

}

三、內嵌的 實體物件類 :public M_teacher_worktime m_teacher_worktime { get; set; }

[Serializable]

public class M_teacher_worktime

{

///

/// 上班時間

///

public string workstarttime { get; set; }

///

/// 下班時間

///

public string workendtime { get; set; }

/// 上班打卡開始時間

///

public string startminrange { get; set; }

/// 上班打卡結束時間

///

public string startmaxrange { get; set; }

/// 下班打卡開始時間

///

public string endminrange { get; set; }

/// 下班打卡結束時間

///

public string endmaxrange { get; set; }

}

四、透過get介面將資料填充到輸出的實體類中生成json資料

M_bbw_host info = new M_bbw_host();

info。subsidiary_id = model。subsidiary_id;

info。TrialID = model。TrialID;

info。KindergartenID = model。KindergartenID;

info。kindergartenName = model。kindergarten;

M_teacher_worktime m_Teacher_Worktime = new M_teacher_worktime();

m_Teacher_Worktime。workstarttime = baby_m。workstarttime。Trim() + “:00”;

m_Teacher_Worktime。workendtime = baby_m。workendtime。Trim() + “:00”;

m_Teacher_Worktime。startminrange = baby_m。startminrange。Trim() + “:00”;

m_Teacher_Worktime。startmaxrange = baby_m。startmaxrange。Trim() + “:00”;

m_Teacher_Worktime。endminrange = baby_m。endminrange。Trim() + “:00”;

m_Teacher_Worktime。endmaxrange = baby_m。endmaxrange。Trim() + “:00”;

info。m_teacher_worktime = m_Teacher_Worktime;

List attendancetimelist = new WisdomStars。Bll。EF。SelectListByEF()。GetbabyattendancetimeModel(model。KindergartenID, model。TrialID);

info。attendancetimelist = attendancetimelist;

List constitutionlist = new List();

List basiclist = ef。hx_basic_param。AsNoTracking()。ToList();

foreach(var item2 in basiclist)

{

M_basic_param info2 = new M_basic_param();

info2。type = item2。param_type;

info2。title = item2。basic_param_name;

//-1:未知 0:女 1:男

if (item2。sex == 1)

{

info2。sex = 1;

}

else if (item2。sex == 2)

{

info2。sex = 0;

}

else

{

info2。sex = -1;

}

info2。minAge = (int)item2。agestart;

info2。maxAge = (int)item2。ageend;

info2。lower_limit = item2。lower_limit;

info2。upper_limit = item2。upper_limit;

constitutionlist。Add(info2);

}

info。constitutionlist = constitutionlist;

ReturnStr = “{\”status\“:\”Y\“,\”msg\“:\”獲取成功\“,\”data\“:” + info。ToEnJsonString() + “}”;

result = new HttpResponseMessage { Content = new StringContent(ReturnStr, Encoding。GetEncoding(“UTF-8”), “application/json”) };

return result;

NET+EF+MVC開發介面輸出json資料時定義實體類的巢狀用法

NET+EF+MVC開發介面輸出json資料時定義實體類的巢狀用法