【问题标题】:Easiest way to use JSON.Net for both BSON and JSON?将 JSON.Net 用于 BSON 和 JSON 的最简单方法是什么?
【发布时间】:2023-03-09 12:37:01
【问题描述】:

我有一些数据是字节数组byte[],我需要在 JSON 中将它们呈现为 base64,但在 BSON 中呈现为原始字节数组。

如何在 JSON.Net 中轻松做到这一点?

所以,到目前为止,我有这样的事情:

class Data
{
    public byte[] Bytes{get;set;}
}

转成BSON就好了,但是转成JSON的时候,当然不是base64编码,当成字符串处理

【问题讨论】:

    标签: c# json json.net bson


    【解决方案1】:

    嗯,在 Json.Net 6.0.1 中使用以下代码,它似乎可以按您想要的方式工作,无需特殊处理:字节数组转换为 base-64 字符串,反之亦然。您是在以不同的方式序列化对象,还是使用旧版本?如果没有,你能提供一些代码来演示这个问题吗?

    string s = "Foo Bar Baz Quux";
    
    Data data = new Data
    {
        Bytes = Encoding.UTF8.GetBytes(s)
    };
    
    string json = JsonConvert.SerializeObject(data);
    Console.WriteLine(json);
    
    data = JsonConvert.DeserializeObject<Data>(json);
    Console.WriteLine(Encoding.UTF8.GetString(data.Bytes));
    

    输出:

    {"Bytes":"Rm9vIEJhciBCYXogUXV1eA=="}
    Foo Bar Baz Quux
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-21
      • 2011-05-09
      • 2014-07-05
      • 2010-12-16
      • 1970-01-01
      • 2019-07-06
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多