我有接收JSON对象的REST资源,该JSON对象是从用户ID到某个布尔值的映射,该布尔值指示该用户是否有错误。
由于我希望有大量的用户,所以我希望通过使用1/0而不是true/false来缩小这个JSON的大小。
我尝试了一下,发现在淡化过程中,Jackson会成功地将1/0转换成true/false,但是有没有办法告诉Jackson(也许使用注释?)将此布尔字段序列化为1/0而不是true/false?
这里有一个JacksonJSONSerializer
,它将Boolean序列化为1
或0
。
public class NumericBooleanSerializer extends JsonSerializer<Boolean> {
@Override
public void serialize(Boolean b, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeNumber(b ? 1 : 0);
}
}
然后对布尔字段进行注释,如下所示:
@JsonSerialize(using = NumericBooleanSerializer.class)
private boolean fieldName;
或者在Jackson模块
中注册:
module.addSerializer(new NumericBooleanSerializer());
问题内容: 是否有任何理由为什么Java的布尔只需要或者为什么不和也? 问题答案: Java与C和C ++之类的语言不同,Java将其视为完全独立的数据类型,它具有两个不同的值:true和false。值1和0为int类型,不能隐式转换为。
在CodeReview上,我发布了一段工作代码,并要求提供改进它的技巧。我得到的一个方法是使用布尔方法检查ArrayList是否有偶数个索引(这是必需的)。这是建议的守则: 因为我已经缠着那个特定的用户寻求了很多帮助,所以我决定是时候缠着SO社区了!我真的不明白这是怎么回事。调用该方法并将ArrayList的大小作为参数(即ArrayList有十个元素,编号=10)。 我知道一个单独的同时运行数字
问题内容: 不出所料,空元组不包含1 但是返回的值不等于 换一种方式来看,运算符返回的a既不是也不是: 但是,如果对原始表达式加上括号,则会恢复正常行为 或其值存储在变量中 在Python 2和Python 3中都观察到此行为。 你能解释发生了什么吗? 问题答案: 您正在遇到比较运算符链接;也 没有 意思。 相反,比较是链接在一起的,该表达式的真正含义是: 因为已经为false,所以将完全忽略链接
问题内容: 快速提问: 在JSONNet中-如何获取布尔true / false以序列化为布尔1/0 我可以看到我们如何处理空值,而所有这些似乎都找不到如何执行此操作。 这可能吗? 问题答案: 您可以像这样实现自定义转换器:
问题内容: 假设我有下表: 从上表中,我要: 结果应为: 如果定义的ID中的任何行对特定列都为true,则我们假设结果为true。 问题答案: 使用聚合函数。 手册: 如果至少一个输入值是true,则为true,否则为false
我有一个PreferentFragment,它的内容是从。包含CheckBoxPreference的xml文件 如您所知,当用户与此Preance交互时,共享首选项对象会自动更新,以便android: key现在包含适当的布尔值。 但是,我想使用String而不是Boolean:是否有任何方法可以使CheckBoxPreection使用String值而不是Boolean值,以便我以后可以使用该键调