[請益] 如何組json丟給前端?

作者: prag222 (prag)   2020-07-23 20:31:29
大家好
小弟最近到新公司
這邊是採 前後端分離(vue.js)
但也不是做純SPA
而是前端都採用ajax撈資料
之前是有做過偽前端跟全端
但我進公司其實是要兼前端整合
我到現在還搞不清楚
前端後端是怎麼開發配合的
通常都有一套作業流程
因為之前在專案公司根本飛車黨
現在看code卡卡的不舒服
看目前程式碼後端是用字串模板組json
string jsonStr={"result":0,"productID":"{productID},"productNum":"{productNum}"}
撈出資料後用replace("{productID}","a1")取代
我看了以後 我想了天哪
資料量一多,又是新維護,天想這作法行嗎?
覺得用這種作法,看資料不直覺,很慢很卡
另外我試著改著用CLASS物件以JsonConvert輸出
不過json裡面的資料又有陣列
用物件的方式好像又有點麻煩
jsonStr={"result":0,"subProduct":[]}
//像是subProduct會有多筆
不知道各位大大是怎麼解決這種問題呢?
用字串組json跟前後端分離
加程式碼有點亂,真的讓我快不起來又不好改
事實上如果我是老闆
好改好閱讀擴充性維護性真的很重要
在專案公司的經驗
開發時程基本上是已經壓不出啥額外的利潤
若高強度高結構化的程式碼
改個不難的bug,五分鐘內幾乎可以改掉10分鐘內上版完成加簡易測試
維護成本才能省得出人力
作者: EricTCartman (阿ㄆㄧㄚˇ)   2020-07-23 20:33:00
如果你是老闆, 如果我是富二代
作者: pepro (peproisgood)   2020-07-23 20:39:00
不是都用dict[key]=value 然後再concert to Jason sting嗎?
作者: qoo1991 (笨哲)   2020-07-23 20:42:00
看到這篇字串組json再配上一篇 純軟好玩的地方就是怎麼做都可以又門檻極低 for迴圈會就上路開工 ,導致各種軟體專案各種噁心
作者: bill0205 (善良的小孩沒人愛)   2020-07-23 21:02:00
不是都先訂好格式 array組好再parse嗎
作者: alihue (wanda wanda)   2020-07-23 21:04:00
通常都是用 framework... 直接 return 定義好的 object.需要的資料都塞進去 class 欄位就好
作者: vi000246 (Vi)   2020-07-23 21:09:00
有陣列怎麼了嗎 要解析是前端的事吧
作者: leo5916267 (小葉)   2020-07-23 21:15:00
就有陣列跑回圈把字串做成object啊好玩的很
作者: ronny1020 (ronny)   2020-07-23 21:25:00
有陣列有什麼問題?不就先把API規格開好,要怎樣的資料就傳什麼為什麼你還在煩惱要不要用陣列,規格講好就照做呀物件裡面放陣列,陣列裡面有物件不是都很常見嗎?
作者: achaos (熱~~~~)   2020-07-23 21:41:00
就是Class物件+JsonConverter,回傳json給前端解析.
作者: jimmily   2020-07-23 21:50:00
不懂陣列會有什麼問題XD... 所以你覺得會有什麼問題?
作者: GGFACE (ggface)   2020-07-23 22:02:00
好多問題
作者: jack529 (Jack)   2020-07-23 22:05:00
這亂寫吧
作者: ronny1020 (ronny)   2020-07-23 22:06:00
是說你文章怎麼整頁空白?你CODE也寫這樣嗎?
作者: king22649   2020-07-23 22:46:00
c#也有像django的全家餐吧 往swagger/openapi方向找 應該有
作者: roccqqck (ccqq)   2020-07-23 23:29:00
不都丟xml或json嗎 要陣列也是包在裡面吧丟要有欄位名比較好解析啊如果你丟單純陣列沒有欄位名的東西 然後說沒問題 那......只能說old school
作者: TAKADO (朕沒給的你不能搶)   2020-07-23 23:33:00
這個年代不是都定義好class,撈完資料組一組塞一塞直接return,剩下交給API框架去處理了嗎?
作者: ZAbird (炸鳥)   2020-07-24 00:49:00
Not only xml or json. Have you ever heard proto buffer
作者: neo5277 (I am an agent of chaos)   2020-07-24 01:29:00
我怎麼覺得,這個物件定義好,寫個方法整理再拋出去就好了啊...
作者: rodion (r-kan/reminder)   2020-07-24 10:37:00
select ProductID as a1 ...
作者: mychiux413 (小邱)   2020-07-24 18:21:00
我沒看code不清楚實際怎麼組的,但自己組字串不走市面上的框架的話,要怎麼確定不會被JSON Injection?跟開源專案相比,能有多少工程師測過?
作者: knives   2020-07-24 19:54:00
自己拼是十年前才在搞的事,現在都2020了別這樣整自己跟別人
作者: pilor (Formosa)   2020-07-24 21:05:00
不是套件轉一轉就好? 前端不能解析是前端的事吧!json的格式就是標準的啊!
作者: Louis5213 (slash5213)   2020-07-24 21:49:00
總覺得是學生作品才會有這詭異的問題
作者: s06yji3 (阿南)   2020-07-24 21:56:00
學生作品可能都不會有這種問題...
作者: mychiux413 (小邱)   2020-07-24 22:48:00
我們家SQL也是用sprintf黏的,但沒人知道嚴重性,都是小網站也沒人在乎
作者: notimenofree (逼逼逼逼逼)   2020-07-25 15:39:00
陣列什麼問題?
作者: vicjoyce0328 (咕咕咕)   2020-07-25 15:39:00
json 有array 也是個問題?
作者: lturtsamuel (港都都教授)   2020-07-26 00:39:00
2020還有人自己拼接json字串==
作者: DendiQ (貔貅)   2020-07-26 03:20:00
如果是 .net 直接回傳物件就會幫你轉換成對應的...要求 application/json 就會收到 json...
作者: wayne5668944 (wayne5668944)   2020-07-27 00:45:00
不是都是定義class然後concert to json嗎...

Links booklink

Contact Us: admin [ a t ] ucptt.com