JSON Path 是一種 JSON 文件查詢語言,其靈感來自 XPath 為 XML 文件提供的功能。它最初由 Matt Goëssner 提出,現在已成為 IETF 規範:RFC 9535。我強大的同事提出用 JsonPath 來比對特定的欄位,測試步驟讀起來清晰,復用性也高,實作起來也是蠻簡單的,接下來就看看我們怎麼做的。
利用 JsonDiffPatch 產生資料異動時的差異內容,縮小儲存容量
當資料有異動 (CUD) 的時候,我會把異動的結果存放在另一張表,稱之為歷程 History 或是快照 Snapshot,讓活動中的資料內容都是有用的,其他的資料表要記錄"當下"的狀態時,則是參考 Snapshot 的資料,例如 Id+Version,這次我要用 JsonDiffPatch 來產生差異資料內容,並且還原出當時的內容,就來看看我怎麼實作。
Web API 通過 Morcatko.AspNetCore.JsonMergePatch 實現更新部分資源
- 395
- 0
- Json Patch
- 2023-05-11
我曾經在端點使用 Dictionary<string,object> 型別,當調用端傳入 {"name":null} 時,移除 name key;傳入 {"name":"123"} 時,name 得的值等於 "123",這樣便能夠做到類似 Json Path 的功能,參考上篇,在不改變合約的情況之下,這次我想要改用 Morcatko.AspNetCore.JsonMergePatch 來實現更新部分資源並且讓端點的合約變成強型別。
[C#] Json Compare/Diff 解決方案
現在的工作大都是使用微軟內建的 Json 序列化套件 System.Text.Json,為什麼要用可以參考 黑大這一篇,在尋求 Json Compare/Diff 解決方案時大都是看到 Newtonsoft(Json.NET) 的 JsonDiffPatch 做法,經同事分享 System.Text.Json 已經有人實作出來了,知道後立馬套用
[.NET 6] 自訂 JsonConverter 反序列化 Dictionary<string, object>
我使用預設的 System.Text.Json 反序列化時 JsonSerializer.Deserialize<Dictionary<string, object>>(json),得到 JsonElement,再透過 JsonElement.Get 系列的方法才能取得正確的資料,這樣有點繁瑣,為此我找到了解方,自行實作 JsonConverter,緊接著,來看看我怎麼處理的
[C#.NET][LINQ] Linq to JSON for Json.NET
[C#.NET][LINQ] Linq to JSON for Json.NET
- 1