class School {
String name;
Room room;
}
class Room {
String name;
}
Room room = new Room();
School school = new School("name");
school.room = room;
如果类的所有字段也为空,是否可以排除空对象{}
?理想情况下,全局地用于每个对象,而无需编写自定义代码。
TLDR:您想要的行为将不起作用,因为对象已经实例化,需要为NULL。
include.non_empty
include.non_null
这些选项不能用于您尝试执行的操作的原因是,您已经实例化了一个Room类型的对象,因此Room不是空的或空的,因此输出:{“name”:“name”,“Room”:{}}
如果您希望有效地避免在JSON中表示空间,那么对象需要为NULL。通过设置School.Room=null
,您将获得所需的输出,但在现实世界中,这可能会变得混乱,因为在将School中的Room设置为null之前,您必须评估对象中的字段是否实际为null。
自定义序列化程序会更好地处理这一点,请参见:不要将空对象包含到Jackson
我想将包含另一个空值POJO的POJO序列化为JSON。 例如,给定: 连载之后,它看起来会是这样的 如果类的所有字段也为空,是否可以排除空对象?理想情况下,全局适用于每个对象,而无需编写自定义代码。
问题内容: 我目前正在使用杰克逊2.1.4,并且在将对象转换为JSON字符串时忽略字段时遇到了一些麻烦。 这是我的类,它充当要转换的对象: 这是我如何转换它: 这是输出: 如何避免这些空值?我只想获取“订阅”目的所需的信息! 这正是我要查找的输出: 我还尝试了@JsonInclude(Include.NON_NULL)并将所有变量都设置为null,但是它也不起作用!感谢您的帮助! 问题答案: 您将
下面是我的类,它充当要转换的对象: 下面是我的转换方法: 输出如下: 下面正是我要查找的输出: 我还尝试了@jsonInclude(include.non_null),并将我的所有变量置为null,但也没有起作用!谢谢你们的帮助!
如何使Gson正确序列化我的密钥?
问题内容: 我使用以下代码来序列化从外部服务获得的响应,并作为我的服务的一部分返回json响应。但是,当外部服务返回带有时区(10:30:00.000-05.00)的时间值时,杰克逊会将其转换为15:30:00。如何忽略时区值? 问题答案: 您可以创建自定义解串器 告诉杰克逊使用您的自定义解串器 并像这样使用它: 您可以使用Jackson自定义序列化为服务响应添加时区信息
我有一个这样的对象: 我是否可以使用和我的条件来仅在不为负数的情况下包含该值?或者有没有其他的解决办法我可以做到这一点?