在纯JavaScript中打包/解压缩通用二进制JSON

时间:2016-05-19 15:22:01

标签: javascript json compression

我一定是在写这个错误。我通过Websocket获得了Universal Binary JSON格式的提要。

如何在纯javascript中将通用二进制json数据解析/解包为可用表单?

我看过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));

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

1 个答案:

答案 0 :(得分:1)

啊,很抱歉这里有混淆(UBJSON的策展人) - UBJSON是一个二进制规范,你得到的二进制有效负载看起来像this的集合 - 你不能把它变成一个字符串打印出来。你必须解析它,如字节。

如果您解析了一个String,你会解析标记字节'S',然后是数字大小标记(可能是'i',除非你使用更大的值)然后是大小,让我们说对于8个字符的字符串,“8”,然后你可以获取接下来的8个字节并将其转换为字符串。

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