我有一个包含映射属性的json字符串,如
{"map":{"1":"value"}, ...}
当Jackson将其反序列化到包含an属性map
的类中时,它似乎执行了map.put(null,“1=value”)
。而在序列化时,它将把对象序列化为相同的格式。
是否有一种方法让jackson正确反序列化到一个只有注解的映射中,或者我需要做一个自定义序列化器。
带有getter/setter的示例对象:
@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public class exampleObject {
Map<Long, String> valueMap;
public Map<Long, String> getValueMap() {
return valueMap;
}
public void setValueMap(Map<Long, String> valueMap) {
this.valueMap = valueMap;
}
}
试试看:
public class ExampleObject {
private Map<String, Long> valueMap;
@JsonCreator
public AccountTagVariableDescription(Map<String, Long> valueMap) {
this.valueMap = valueMap;
}
@JsonAnyGetter
public Map<String, Long> getValueMap() {
return valueMap;
}
}
你好,团队, 我正在开发一个Spring Boot项目(版本2.3.4版本),其中我正在使用java.time.LocalDate,java.time.LocalDateTime和java.time.LocalTime数据类型来表示几个bean中的一些属性。 然而,这些字段不会被自动反序列化,除非我为它们显式地提供了以下注释以及我的自定义反序列化器。 将这些注释添加到所有的bean中确实是一项耗时
在使用Gson的fromJson方法时,是否有任何方法可以使用给定类的set方法? 我之所以这样做,是因为对目标类的每个
我有一个具有两个属性的JSON对象:“key”(字符串)和“value”(可以反序列化为Java bean)。 问题是,给定一个这样的物体列表,我能把它反序列化为一张地图吗? 当前使用Jackson-databind 2.1
我想将json反序列化到类Foo: IBar有两个实现,但是当反序列化时,我总是想使用第一个实现。(理想情况下,这将使问题变得更容易,因为不需要运行时类型检查) 我相信我可以编写自定义反序列化程序,但我觉得一定有更简单的方法。 我找到了这个注释,它在没有列表的情况下非常有效。
我有一个JSON,它带有一个包含任意键和值类型的标记,我想将其读入Java中POJO内的映射。映射将是指向JsonValue或JsonNode之类的字符串。我正在使用对象映射器解析json。 有人对如何设置我的POJO来与杰克逊一起完成这一任务有什么建议吗?还是一种更好的方式? Json示例: 映射方法: 我的POJO:
我有JSON反序列化和映射到枚举的问题。我从外部API获取JSON,类似于下面两个例子: 我想将空值映射到一些默认的枚举值。 模型对象 和枚举类 对于exists,值模型类包含正确的枚举,但如果我从API获取< code>null,它在模型中仍然是< code>null。 我试图创建一些由< code>@JsonCreator注释的方法,使用< code > @ JsonEnumDefaultVa