按真正修改格式理解欄位
JSON Merge Patch 中,沒有傳的欄位保持不變,null 則刪除欄位。其他 PATCH 格式可能不同。以下只按 merge-patch 處理假設個人資料物件,不能套用到所有 JSON 請求。
| 原內容 | 修改內容 | 結果 |
|---|---|---|
| phone="1234",note="call" | {"note":"email"} | 保留 phone;note="email" |
| phone="1234" | {"phone":null} | phone 欄位被移除 |
| phone="1234" | {"phone":""} | 若格式接受,phone 成為空字串 |
表單操作要對應真正修改意圖
表單分開記沒有改、已改及明確清除。訂清楚業務欄位是否容許空字串或移除,並驗證決定。若要真的儲存 null,merge patch 未必能表示所需分別,須用目標支援的其他方法。
用戶打開資料但沒有改電話,轉接程式應送 phone:null 嗎?
查看參考答案
按 merge-patch 意思不應。未改電話便不傳;只有明確且獲准清除,才送移除要求。