javascript - 在纯 JavaScript 中打包/解包通用二进制 JSON

标签 javascript json compression

我肯定是用谷歌搜索错误了。我通过 Websocket 获得通用二进制 JSON 格式的提要。

如何将通用二进制 json 数据解析/解压为纯 JavaScript 中可用的形式?

我看过ubjson.org javascript 中似乎有两种 ubjson 解析器的实现。然而,一个用于node.js,另一个用于asm.js。 ubjson 不是应该从 JSON 1-for-1 解析/序列化吗?

使用没有 asm.js 的 ubjson.js,我尝试过:

ubjson.bytesU8 = ubjsondata;
var value = ubjson.decode();
console.log(JSON.stringify(value, null, 2));

但它只记录几个数字,然后触发浏览器的打印模式!

最佳答案

啊啊,抱歉造成困惑(这里是 UBJSON 的策展人)- UBJSON 是一个二进制规范,您将获得一个二进制有效负载,看起来像 this 的集合- 你不能把它变成一个字符串并打印它。您必须将其解析为字节。

如果您解析 String例如,您将解析标记字节“S”,然后解析数字大小标记(可能是“i”,除非您使用更大的值),然后解析大小,假设“8”表示 8 个字符的字符串,那么您可以获取接下来的 8 个字节并将其转换为字符串。

当规范说与 JSON 1:1 时,它在逻辑上是兼容的,它不是相同的基于文本的格式。

关于javascript - 在纯 JavaScript 中打包/解包通用二进制 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37327633/

相关文章:

javascript - JavaScript 对象中键查找的性能

c# - 将 JSON 数据传递给 REST POST 方法

javascript - 值(value)串联问题

java - 使用 GSON 检查 JSON 是否适合所需的类

javascript - JSON stringify 正在添加反斜杠

groovy - 如何使用 SOAPUI 解压缩 GET 响应

python - 如果我在numpy中将float64数组压缩为float32,我应该担心什么?

python - 用python压缩大文件

c# - Chrome 显示 keyCode 未定义

javascript - 显示带有缩略图和下一个/上一个按钮的图像