[C#] 一些關於 CBOR 實作 - Javascript 編碼 + C# 解碼
最近因為專案關係有碰到 CBOR ( Concise Binary Object Representation ) ,關於 CBOR 是啥可以看看 這篇,對我來說是很少接觸的東西,所以大概看了一下
不過這篇沒有打算要細講解他的規格,主要是因為很多地方都說得很完整了,這篇主要偏於筆記跟實作
這篇要做的,主要是有一個物件 叫做 User ,我在 javascript 中將他 使用 CBOR encode 之後,我再使用 C# 後端這邊將他此解碼
當然這中間我有做一個動作就是在編成 base64 ,畢竟傳遞回 server 透過 Web API 傳 ArrayBuffer 會有點麻煩,所以直接在 前端轉 base64
再傳到後端,如果你傳遞是用 websocket 當然就直接往 server 傳就可以了
1. 在前端 將一個物件做 CBOR 編碼,這邊我有用到 這位大大的開源 cbor.js ( reference : https://github.com/paroga/cbor-js )
引入後,在來就是進行編碼的過程,直接上 code
2.之後 透過步驟一 我們拿到一個 編碼的字串 "pGJJZGVET05NQWROYW1laeioseeVtum6u2ZTYWxhcnn7QGj/mmtQsPJlQmlydGh4GTIwMTItMDItMTZUMTU6MDA6MDArMDg6MDA="
這時候,我們要如何在後端還原該物件。
先引用一個 library : Dahomey.Cbor
在來就是 code 的部分,首先只要把 該字串先 透過 base64 decode 回 byte[] 透過套件,就很簡單了
C# Code:
中間我就省略透過 Web API 傳遞的部分了,最近有用到所以大概筆記一下 :)
reference:
https://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript
https://www.readfog.com/a/1648324634492375040
https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
https://github.com/paroga/cbor-js