json - JavaEE将对象序列化为json的方法

标签 json java-ee-7

使用 Jackson,我可以非常轻松地创建 Json 字符串:

String json = new ObjectMapper().writeValueAsString(object)

问题是这依赖于特定的 api 实现。有没有一种纯粹的JavaEE方法来实现这一点?

我想通过 websocket 发送 json。通过其余发送没有问题 - 指定媒体类型就足够了。可能有一种方法可以像其余 api 一样创建 json。

最佳答案

理论上,您应该能够执行以下操作:

@Context
private MessageBodyWorkers workers;

然后

MessageBodyWriter<MyBean> messageBodyWriter =
            workers.getMessageBodyWriter(YourBean.class, YourBean.class,
                    new Annotation[]{}, MediaType.APPLICATION_JSON);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
messageBodyWriter.writeTo(myBean, YourBean.class, YourBean.class,
    new Annotation[] {},
    MediaType.APPLICATION_JSON,
    new MultivaluedHashMap<String, Object>(),
    baos);

但是,我必须补充一点,它对我来说从来没有可靠地工作过,所以我最终直接调用 jackson 。

关于json - JavaEE将对象序列化为json的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31657570/

相关文章:

java - 一个类从一个实例转换到它自己的类失败的可能原因?

rest - 在java ee 7中获取rest客户端调用的对象实例列表

Java JCache 字符串键与复合键

c# - 根据属性的运行时值选择性地序列化属性

添加到 JSONObject 时,Android Base64 解码编码不正确

mysql - 如何在没有 URL 的情况下使用 JSON 编码数组?

javascript - FQL 查询不返回喜欢的帖子

jquery - 如何在 ASP.NET MVC 中返回 JSON 格式的 500 错误?

jsf - 使用 JSF/Java EE 从数据库实时更新

mysql - EntityManager 没有持久性提供程序