gpt4 book ai didi

javascript - 如何在 Javascript 中转换 JSON 字节

转载 作者:行者123 更新时间:2023-11-29 16:43:46 24 4
gpt4 key购买 nike

我继承了一个有点大的、基于 Java 的服务器端代码库,它使用 JSON 与客户端通信。有几个原因,基于 Jackson 的 JSON 转换必须使用二进制形式——换句话说,我在服务器上生成的 JSONside 由字节组成,而不是字符。

这对于以前的客户端来说不是问题,因为它们都是基于 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(),并尝试了在 Internet 上(以及此处的 Stack Overflow)上找到的各种其他转换例程,以创建可以转换为有意义的字符的数组。我所有的尝试要么在运行时导致错误和失败,要么产生了破坏 JSON 转换器的垃圾。

有没有办法让 Javascript 读取 Jackson 生成的一组字节,以便使用 JSON 转换器将它们转换回对象?还是 Javascript 只能转换 JSON 字符串?

有人请指点...

最佳答案

假设您的二进制 JSON 是这样的:

[123, 34, 107, 101, 121, 34, 58, 34, 118, 97, 108, 117, 101, 34, 125]

您可以轻松地将其转换为字符串:

var str = String.fromCharCode.apply(String, data);

并使用 JSON 对象解析:

JSON.parse(str);

jsfiddle

关于javascript - 如何在 Javascript 中转换 JSON 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43180996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com