作者Minksaki (咲)
看板Programming
標題[問題] Android Json參數內不能有Null嗎?
時間Thu Jan 3 19:33:23 2019
想請問一下,有在寫Android 或是IOS的大大,
小的我負責寫Web API (C#) 吐JSON 格式的資料給APP使用
目前遇到一個小疑惑還請各位大老解釋
我的API 會去資料庫把資料撈出後回傳JSON格式 大概如下
正常情況
{"d" : true , "Data" : {"a":"Hello","b":"_World",c:"!!"}}
部分情況會出現
{"d" : true , "Data" : {"a":"Hello","b":"_World",c:null}}
這個時候 Android 程式就會出現錯誤,
我們公司Android 的工程師 就會說請把C參數也變成回傳 空字串,
說Android 跟 IOS JSON 沒辦法讀取null 參數,
害他APP出錯都是我的錯神麼的OOXX。
讓我覺得很生氣,網頁端View 就可以判斷Null 值,為神麼手機APP就不行?
想請問各位大大是真的不能判斷Null,還是我被唬爛只是他不想改程式判斷?
因為如果要我這邊改,我可能要改幾百隻API
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.185.203
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Programming/M.1546515205.A.8F5.html
1F:→ cancelpc: 應該只是他們用的 lib 不支援,json 本 118.168.201.28 01/03 21:48
2F:→ cancelpc: 身規格有含 null 值得處理方式,一種是 118.168.201.28 01/03 21:48
3F:→ cancelpc: 直接不帶出該欄位,一種就是帶出 null, 118.168.201.28 01/03 21:48
4F:→ cancelpc: 但有時需要另外設定。 118.168.201.28 01/03 21:48
5F:→ cancelpc: 不然你就找你用的 lib ,看有無不輸出 n 118.168.201.28 01/03 21:49
6F:→ cancelpc: ull 值的欄位。 118.168.201.28 01/03 21:49
7F:推 lnmlee: 這情況我常見 基本上是android端處理 因為 101.14.178.179 01/05 22:21
8F:→ lnmlee: 資料不完全要做例外處理 (跳警告卸責後端 101.14.178.179 01/05 22:21
9F:→ lnmlee: 也好 自己處理也罷)而不是放任它程式壞掉 101.14.178.179 01/05 22:21
10F:→ JackChena: 公司有缺android工程師嗎?換掉即可 39.9.5.196 01/13 17:37
11F:→ JackChena: 沒有做不到 只有想不想做,另外web的容 39.9.5.196 01/13 17:40
12F:→ JackChena: 錯率很高 所以網頁通常有問題只是沒反 39.9.5.196 01/13 17:40
13F:→ JackChena: 應而已,app設計通常有問題就是往上拋 39.9.5.196 01/13 17:40
14F:→ JackChena: 到沒人接exception就會丟當機出來,為 39.9.5.196 01/13 17:40
15F:→ JackChena: 了使用者體驗故意這樣設計的,所以體 39.9.5.196 01/13 17:40
16F:→ JackChena: 驗永遠是app遠大於網頁 39.9.5.196 01/13 17:40
17F:→ JackChena: 逼你去處理問題 39.9.5.196 01/13 17:40
18F:→ JackChena: Web通常是動態語言,而且很多都是瀏覽 39.9.5.196 01/13 17:43
19F:→ JackChena: 器幫你處理掉這些錯誤了,null就頂多就 39.9.5.196 01/13 17:43
20F:→ JackChena: undefined <=這個還是有分配記憶體喔, 39.9.5.196 01/13 17:43
21F:→ JackChena: app則扯到存取記憶體問題,記憶體沒有 39.9.5.196 01/13 17:43
22F:→ JackChena: 你去拿就死給你看 39.9.5.196 01/13 17:43
23F:推 arliang: 推一樓,null不該出現欄位 101.8.224.126 01/18 09:52
24F:→ liddle: 丟出 null 不是個好作法。很難追問題。另 101.13.197.255 02/28 13:06
25F:→ liddle: 外處理 null 要耗費資源。 101.13.197.255 02/28 13:06