我已经继承了一个较大的基于Java的服务器端代码库,该代码库使用JSON与客户端进行通信。基于以下几个原因,基于Jackson的JSON转换必须使用二进制格式 - 换句话说,我在服务器 一侧生成的JSON由字节组成,而不是由字符组成。如何转换Javascript中的JSON字节
这对于以前的客户来说不是问题,因为它们都是基于Java的。我可以使用Jackson库将二进制文件转换回对象。不幸的是,我被要求创建一些基于浏览器的客户端,它们需要使用Javascript来接收和显示JSON信息。
我正在尝试使用JQuery的JSON转换函数,但事实证明,无论是JQuery还是常规的Javascript函数都无法将一组JSON字节转换回对象。我需要将字节转换回字符,以便将它们转换回对象。
我了解到,为了将字节转换为字符,我必须将字节转换为字节数组。这是我遇到问题的地方。
我一直在尝试使用各种方法将二进制JSON信息转换回可以使用JSON转换函数转换为有意义的对象的窗体(字节数组)。我已经使用ArrayBuffer以将数据转换成一个字节的缓冲区试过,则int8Array()函数创建一个字节数组:
var buffer = new ArrayBuffer(obj.payload.length);
var bits = new Int8Array(buffer);
我还试图使用uint8Array(),并试图找到的各种其它转换例程在互联网上(以及Stack Overflow中),以创建可以转换为有意义的字符的数组。我所有的尝试都在运行时造成错误和失败,或者产生了破坏JSON转换器的垃圾。
有什么方法让Javascript读取由Jackson生成的一组字节,以便可以使用JSON转换器将它们转换回对象?或者,Javascript只能够转换JSON字符串?
有人请指教...
你知道,这将有助于?这就是所谓的* JSON字节*的例子 - 这就是说我们可以排除你根本不处理JSON的可能性 –