The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何透過 System.Text.Json 序列化輸出完整的 Unicode 字元

我最近在整理《重編國語辭典修訂本》最新版的資料檔,因為我預計輸出成跟 g0vmoedict-data 專案相容的 JSON 格式,而在輸出的時候卻發現這些中文字都被編碼了,但我希望能夠輸出成完整的 Unicode 字元。這才發現即便是 .NET 8 最新版,也無法輸出完整的 Unicode 字元,這篇文章就是記錄我如何解決這個問題的過程。

... 繼續閱讀 ...

System.Text.Json 可使用 JsonSerializerDefaults.Web 處理常見的 JSON 格式

今天公司同事在用 .NET 處理一個系統串接需求時,發現對方傳來的 JSON 格式會把應該為「數值」的數字資料使用「字串」的格式來表達,這導致他在使用 System.Text.JsonJsonSerializer.Deserialize 進行反序列化時出現錯誤。這篇文章我來分享一個鮮為人知的小秘訣,讓你輕鬆駕馭各種 Web 常見的 JSON 格式。

... 繼續閱讀 ...

如何讓 System.Text.Json 支援 Dynamic 型別的序列化/反序列化

我最近因為支援 Quicktype 開源專案,新增了 System.Text.Json (C#) 的程式碼產生器功能,因此更加理解 System.Text.JsonConverter 撰寫方式。在這之前,我其實我都還是偏好使用 Newtonsoft.Json (俗稱 Json.NET) 來進行 JSON 的序列化/反序列化工作,原因就在於 Json.NET 有很多「方便」又「豐富」的功能與特性在 System.Text.Json 都找不到,因此剛入門 System.Text.Json 的人一定會覺得綁手綁腳,很多原本能動的 Code 都不能 Run 了。今天這篇文章,我打算來分享如何讓 System.Text.Json 支援 dynamic 動態型別,讓你可以用「弱型別」的方式操作靈活的 JSON 資料。

... 繼續閱讀 ...