如題,想請問有沒有好一點的作法
因為最多就只會三筆
目前想到一筆一筆塞,想說最多就9行,但感覺實在太笨了
目前前端會傳來的架構如下,回傳來一個交易明細List<TransDetail>
public class TransDetail
{
/// <summary>
/// 收費日
/// </summary>
public string paidDate { get; set; }
/// <summary>
/// 金額
/// </summary>
public string paidAmount { get; set; }
/// <summary>
/// 費用類型
/// </summary>
public string billType { get; set; }
}
但後臺打到API server需要的是
想請問有什麼好的做法嗎?
後台正規劃後才會好寫
如果名稱固定,可以用反射解決問題,但還是像 gn00044255 大大說的正規化比較好。
可以參考官方 Type 的使用方式。
HI 米歐 大大你好
我去找了你說的反射用法
Detail是有para0、para1、para2的class(我想要用來存第一到三次的費用、繳費日和費用類型)
Detail paidDateDetail = new Detail();
Detail paidAmountDetail = new Detail();
Detail billTypeDetail = new Detail();
int index = 0;
var type = typeof(Detail);
foreach (TransDetail tptd in rqModel.transDetail)
{
var paraInfo = type.GetProperty("para" + index.ToString());
// 裡面的第一個參數是表示要對該實體進行操作
paraInfo.SetValue(paidDateDetail, tptd.paidDate);
paraInfo.SetValue(paidAmountDetail, tptd.paidAmount);
paraInfo.SetValue(billTypeDetail, tptd.billType);
index++;
}
寫出大概是這樣
最後大概是要把paidDateDetail、paidAmountDetail、billTypeDetail個別JSON序列後塞進要傳入後台的para0、para1、para2中
看起來方向是對的,JSON的處理就要看你用哪一套框架開發,基本上網路都有現成的API使用,傳入後台的para0, para1, para2也只是類別的屬性名稱而已。
順帶一提,反射是會有效能上的損失,但好處就像你現在的Code,讓你感覺乾淨許多。