有没有办法使用球衣配置部分或完全序列化为 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());
希望对您有所帮助
我想使用球衣序列化一个 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());
希望对您有所帮助