C# 从Json中获取byte[] 二进制数据

来自:https://www.cnblogs.com/skyheaving/p/13294569.html

步入正题:

    1、考虑WebApi 接收方便,定义数据格式使用json,但是json内部的二进制对象无法正常获取,

      var objModel=JsonConvert.DeserializeObject<JObject>(objRequest.ToString());

      var sBytes=(byte[])objModel["sByte"];  //...Error!

    2、如何获取json中的二进制对象呢?

      在拼接/转换json数据前,对二进制数组做个转换,转换为base64编码的字符串,然后再webapi中接收后,再对经过base64编码的字符串进行解码。二进制数组就获取到了。  

    

复制代码
//调用接口前处理:
var sFilePath="C://test.docx";
var bytes=File.ReadAllBytes(sFilePath);
string base64Str=Convert.ToBase64String(bytes);
string submitStr=JsonConvert.SerializeObject(
  new {       ID=Guid.NewGuid().ToString(),       byteStr=base64Str     }
); //服务(接口)端接收 public string OperateAdv(dynamic objRequest) //HttpPost var objModel=JsonConvert.DescrializeObject<JObject>(objRequest.ToString()); var sBytes=objModel["byteStr"];//获取json中的二进制 字符串(dynmaic 类型) byte[] tBytes=Convert.FromBase64String(sBytes.ToString());//对解析后的二进制字符串进行base64 解码
复制代码

    换个方式进行处理,就能够得到想要的结果!哈哈哈。先记录一下,如果大家有其他方式处理,欢迎提示。

    转换方式参考:https://www.cnblogs.com/WarBlog/p/10594900.html   编码处理json字符串中byte.

posted @ 2021-09-09 08:45  赤狐(zcm123)  阅读(900)  评论(0编辑  收藏  举报