首页 > 解决方案 > 将 base64 字符串转换为 JSON .NET

问题描述

我是 C# 新手,我有一个带有 base64 编码值的客户端请求。我正在尝试解码字符串并使用 JSON 对象。这是我调用来解码 base64 字符串的函数。

    public string FromBase64(string data)
    {
        if (string.IsNullOrEmpty(data)) return data;
        var bytes = Convert.FromBase64String(data);
        return UTF8Encoding.UTF8.GetString(bytes);
    }

如何转换此函数的返回值或将其修改为 JSON,以便解析其值?

例如,现在对于 input value 的值data e0tleSA6ICdhYmMnLCBpc0V4aXN0czogJ3RydWUnfQ==,当前的输出是"{Key : 'abc', isExists: 'true'}"。我想要的输出是{Key : 'abc', isExists: 'true'}

标签: c#json.netbase64

解决方案


你有一个 base-64 字符串,你似乎是一个反序列化的对象;所以你需要多个步骤:

  • 将 base-64 解码为二进制
  • 将二进制文件解释为文本
  • 定义与预期数据匹配的对象模型
  • 将文本反序列化为对象模型

例如:

    static void Main()
    {
        var base64 = @"e0tleSA6ICdhYmMnLCBpc0V4aXN0czogJ3RydWUnfQ==";
        var blob = Convert.FromBase64String(base64);
        var json = Encoding.UTF8.GetString(blob);
        // string: "{Key : 'abc', isExists: 'true'}"
 
        var obj = JsonConvert.DeserializeObject<MyPayload>(json);
        Console.WriteLine(obj.Key);
        Console.WriteLine(obj.IsExists);
    }

    class MyPayload
    {
        public bool IsExists { get; set; }
        public string Key { get; set; }
    }

推荐阅读