我肯定是用谷歌搜索错误了。我通过 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/