【问题标题】:Jersey client side receive pojo us bytesJersey 客户端接收 pojo us 字节
【发布时间】:2017-09-28 07:06:28
【问题描述】:

是否有可能有一个 Restful 方法 (Java EE) 向客户端返回一个 POJO 序列化的 us 字节(使用 ByteArrayOutputStream、FlatBuffers 或其他一些库)?

而客户端通常使用 jquery 或 javascript(我们客户端)将字节转换回 POJO 对象?

到目前为止,我发现的是接收一个 JSON/XML。

【问题讨论】:

    标签: javascript java json jakarta-ee jersey


    【解决方案1】:

    直接将 POJO 转换为字节将不起作用,因为您的客户端(javascript 左右)不知道如何将字节转换回 POJO。你能做的就是这个。假设您的响应是 objA。这样做。将 objA 转换为 String(可能是 JSON),然后 Base64 对其进行编码以获取 byte[]。将它放在包装对象 objB 中。从您的服务返回 objB 作为 JSON。您的客户端可以只获取该 byte[] 并且由于它知道 byte[] 是 base64 ,因此它将能够从那里获取原始信息。 请问这样做而不是 XML/JSON 的意图是什么?

    【讨论】:

    • 好的,换句话说,没有其他方法可以在 Jersey 响应的客户端 (javascript) 端进行反序列化。目的是在 Jersey(我们的功能)和 beans(我们的响应格式)之间进行组合。消除将 JSON/XML 转换为 POJO 的需要。相反,直接接收 POJO。并且还尝试使用此建议:youtube.com/watch?v=IwxIIUypnTE(不发送 JSON 而是使用字节代替)
    • 您所指的 POJO 是一个 Java 对象。如果您使用标准 Java IO 对其进行序列化,那么任何客户端将如何知道如何将其反序列化回数据。序列化疯狂必须有一些方法。您也可以将 byte[] 数据直接发送到客户端,而无需将其包装在 JSON 对象中。只需确保您对这些字节有特定的编码。否则客户端将不知道如何处理这些字节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    相关资源
    最近更新 更多