有没有办法使用球衣配置部分或完全序列化为 json?

is there a way to configure paritally or fully serializion to json using jersey?

我想使用球衣序列化一个 java 对象。

我想将其序列化并打印到文件中。

对象很大,我想保存两次:

一个只有必填字段的简短版本。

第二个完整版本,包含所有字段。

除了创建两个 DTO 之外,还有其他办法吗

并从大对象中复制小对象,然后将它们都序列化为 json?

为了加快速度,Jersey 帮助制作 REST 网络服务,Jackson 帮助管理 JSON 对象。 因此,您可以同时使用两者并有更多的方式来玩弄您的对象。

扩展 JsonSerializer,您可以提供 2 个具有您想要的行为的自定义序列化程序。我不会重新发布我在评论中提出的 link,但其中有一个示例。 可以肯定的是,对我来说,非平面对象是具有私有属性的对象,这些属性是业务对象。如果是,是的,您可以序列化一个非平面对象。

要序列化非平面对象,我认为有两种方法。我的开发基于我在评论中提供的 link(项目、用户、主要 class...)。 第一个,组成的很简单,所以我可以使用这样的东西:

        jgen.writeStartObject();
        jgen.writeNumberField("id", value.id);
        jgen.writeStringField("itemName", value.itemName);

        jgen.writeObjectFieldStart("owner");
        jgen.writeNumberField("id", value.owner.id);
        jgen.writeStringField("name", value.owner.name);
        jgen.writeEndObject();

        jgen.writeEndObject();

在这种情况下,所有者由两个字段组成,非常简单。

第二种解决方案是使用另一个序列化程序: 一个用于主要对象,一个用于复合对象并使用:

jgen.writeObjectField("owner.", value.owner);

并且不要忘记添加组合对象序列化器:

module.addSerializer(User.class, new UserSerializer());

希望对您有所帮助