You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将含byte[]的模型序列化为JSON且不转Base64字符串

解决.NET中byte[]序列化为JSON数字数组的问题

默认情况下,.NET的JsonSerializer会将byte[]类型序列化为Base64字符串,要实现将其转为数字数组的需求,你可以自定义一个JSON转换器:

步骤1:自定义byte[]转换器

创建一个继承自JsonConverter<byte[]>的类,重写序列化逻辑:

public class ByteArrayToJsonArrayConverter : JsonConverter<byte[]>
{
    public override byte[] Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
    {
        // 反序列化逻辑(如需支持反序列化可保留)
        if (reader.TokenType != JsonTokenType.StartArray)
            throw new JsonException("byte[]反序列化时需传入数组格式JSON");
        
        var byteList = new List<byte>();
        while (reader.Read() && reader.TokenType != JsonTokenType.EndArray)
        {
            if (reader.TokenType != JsonTokenType.Number)
                throw new JsonException("byte[]数组元素需为数字类型");
            byteList.Add((byte)reader.GetInt32());
        }
        return byteList.ToArray();
    }

    public override void Write(Utf8JsonWriter writer, byte[] value, JsonSerializerOptions options)
    {
        // 序列化时把byte[]转为数字数组
        writer.WriteStartArray();
        foreach (byte b in value)
        {
            writer.WriteNumberValue(b);
        }
        writer.WriteEndArray();
    }
}

步骤2:配置序列化选项并执行序列化

在序列化时,将自定义转换器添加到JsonSerializerOptions中:

MyModel myObject = new MyModel
{
    Id = 1,                
    Data = new byte[] { 0x01, 0x02, 0x03 }
};

var options = new JsonSerializerOptions();
options.Converters.Add(new ByteArrayToJsonArrayConverter());

string json = JsonSerializer.Serialize(myObject, options);
// 输出结果:{"Id":1,"Data":[1,2,3]}

补充:PowerShell代码翻译

你提供的PowerShell代码功能及注释翻译如下:

# 将证书库对象转换为压缩格式的JSON字符串
$CertificateJsonString = ConvertTo-Json $CertificateVaultObject -Compress
# 将JSON字符串转换为安全字符串(以明文形式处理)
$CertificateSecureString = ConvertTo-SecureString -String $CertificateJsonString -AsPlainText –Force

内容的提问来源于stack exchange,提问作者Lifewithsun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 13:52:24