[英]How to implement a custom serialization only for serde_json?
我希望能夠將Vec<u8>
序列化為 JSON(和其他基於 UTF-8 的格式)的 base64 編碼字符串,同時保留二進制序列化格式的字節數組。
#[derive(Serialize, Deserialize)]
struct MyStruct {
binary_data: Vec<u8>,
}
默認情況下,serde_json會序列化binary_data
領域為數字的數組。 相反,我想將它序列化為一個用 base64 編碼的字符串。 然而,我想使用原始字節保留 bincode(或任何其他二進制格式)並避免 base64 轉換。
我想出的唯一解決方案是專門為序列化程序創建數據結構的副本,但是當您具有嵌套結構時,這確實很煩人且效率低下。
根據 Derde 的文檔,您不能為相同結構的具體序列化程序提供Serialize
trait 的特殊實現。
您可以創建一個NEWTYPE結構,然后提供定制serde::{Des,S}erialize
實施StringableMyStruct
支持String
S IN字段:
pub struct StringableMyStruct(MyStruct);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.