- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下类,由 Jackson 映射(简化版):
public class POI {
@JsonProperty("name")
private String name;
}
在某些情况下,服务器返回 "name": null
,然后我想将 name 设置为空 Java 字符串。
是否有任何 Jackson 注释,或者我是否应该只检查 getter 中的 null 并在属性为 null
时返回空字符串?
最佳答案
Jackson 2.9 实际上提供了一个尚未提及的新机制:对属性使用 @JsonSetter
,对 String.class
等类型使用等效的“Config Overrides”。包含更长的解释
https://medium.com/@cowtowncoder/jackson-2-9-features-b2a19029e9ff
但要点是您可以像这样标记字段(或 setter ):
@JsonSetter(nulls=Nulls.AS_EMPTY) public String stringValue;
或将映射器配置为对所有 String
值属性执行相同操作:
mapper.configOverride(String.class)
.setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
两者都会将传入的 null
转换为空值,对于字符串为“”。
这也适用于 Collection
和 Map
,正如预期的那样。
关于java - jackson :将空字符串反序列化为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654810/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!