字节串到字节数组c#

时间:2013-11-19 10:15:13

标签: c# json byte

在我的Web应用程序中,我连接到Web服务。在我的Web服务中,它有一种根据路径获取报告字节的方​​法:

public byte[] GetDocument(string path)
{
   byte[] bytes = System.IO.File.ReadAllBytes(path);
   return bytes;
}

现在,当我从我的Web应用程序发出请求时,Web服务给了我一个Json对象,类似于:

{
  "Report":"0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAA
   AAACAAAA3QAAAAAAAAAAEAAA3wAAAAEAAAD+ ... (continues)" 
}

在我的Web应用程序中,我有一个获取Json对象的方法,将“report”放在一个字符串中。 然后,Web应用程序有一个方法将字符串解析为一个字节数组,这不起作用,它抛出一个FormatException

public byte[] DownloadReport(string id, string fileName)
{
    var fileAsString = _api.DownloadReport(id, fileName);
    byte[] report = fileAsString.Split()
                                .Select(t => byte.Parse(t, NumberStyles.AllowHexSpecifier))
                                .ToArray();
    return report;
}

我也尝试过这样做:

public byte[] DownloadReport(string id, string fileName)
{
   var fileAsString = _api.DownloadReport(id, fileName);
   byte[] report = Encoding.ASCII.GetBytes(fileAsString);
   return report;
}

这给了我一个.doc文件,其中包含与Json对象完全相同的字符串。

我是从Web服务中解析错误的方法,还是在我想再次将其转换为字节数组时?

1 个答案:

答案 0 :(得分:5)

public byte[] DownloadReport(string id, string fileName)
    {
        var fileAsString = _api.DownloadReport(id, fileName);
        byte[] report = Convert.FromBase64String(fileAsString);
        return report;
    }