當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

C# 從Json中獲取byte[] 二進(jìn)制數(shù)據(jù)
2021-09-09 09:38:31

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

步入正題:

    1、考慮WebApi 接收方便,定義數(shù)據(jù)格式使用json,但是json內(nèi)部的二進(jìn)制對象無法正常獲取,

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

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

    2、如何獲取json中的二進(jìn)制對象呢?

      在拼接/轉(zhuǎn)換json數(shù)據(jù)前,對二進(jìn)制數(shù)組做個(gè)轉(zhuǎn)換,轉(zhuǎn)換為base64編碼的字符串,然后再webapi中接收后,再對經(jīng)過base64編碼的字符串進(jìn)行解碼。二進(jìn)制數(shù)組就獲取到了?! ?/p>

    

復(fù)制代碼
//調(diào)用接口前處理:
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     }
); //服務(wù)(接口)端接收 public string OperateAdv(dynamic objRequest) //HttpPost var objModel=JsonConvert.DescrializeObject<JObject>(objRequest.ToString()); var sBytes=objModel["byteStr"];//獲取json中的二進(jìn)制 字符串(dynmaic 類型) byte[] tBytes=Convert.FromBase64String(sBytes.ToString());//對解析后的二進(jìn)制字符串進(jìn)行base64 解碼
復(fù)制代碼

    換個(gè)方式進(jìn)行處理,就能夠得到想要的結(jié)果!哈哈哈。先記錄一下,如果大家有其他方式處理,歡迎提示。

    轉(zhuǎn)換方式參考:https://www.cnblogs.com/WarBlog/p/10594900.html? ?編碼處理json字符串中byte.

本文摘自 :https://www.cnblogs.com/

開通會(huì)員,享受整站包年服務(wù)立即開通 >