有沒有遇到過 拿到的json格式
有很多狀態 然後狀態都是用1,2,3代表意義
像是
OpenStatus 1表示OOO,2表示XXX
CloseStatus 1表示AAA,2表示BBB
BackStatus 1表示あああ,2表示わわわ
然後每次在除錯的時候都要放個對照表 要不然就是要背起來
很想再寫一個物件然後只是為了翻譯那些狀態
這時候就可以用dynamic無中生有的技巧
使用ExpandoObject
(還不知道的人 先去下方補課)
既然要動態就動個痛快 - ExpandoObject
var demo = GetDemo();
dynamic reply = new System.Dynamic.ExpandoObject();
reply.Status = demo.Status;
reply.Message = demo.Message;
reply.OpenStatus = demo.OpenStatus.Value;
reply.CloseStatus = demo.CloseStatus.Value;
reply.BackStatus = demo.BackStatus.Value;
reply.Result = demo;
ViewBag.Json = Newtonsoft.Json.JsonConvert.SerializeObject(reply)
demo.OpenStatus.Value 有用到Ardalis.SmartEnum套件
.Value就會拿到對應的中文狀態
這樣你就不需要建立class 就可以產出好識別問題的json了
可以得到類似這樣的結果
在網頁上顯示json的套件
jquery.json-viewer
https://github.com/abodelot/jquery.json-viewer
學會這技巧後 以後處理複雜json時 容易許多