class MainContainer {
private final Map<String, Object> entries;
}
class Item {
// a lot of attributes
}
class ItemMapKeySerializer extends JsonSerializer<Item> {
// serialize an item into something simple for map keys
}
class IntermediateContainer {
private final Map<Item, ... > someMapping;
}
MainContainer.add("test", new IntermediateContainer(Map.of(new Item(), ...)));
entries: {
"test": {
someMapping: {
"my nice item 1": {
...
}
}
}
}
MainContainer.add("test", Map.of(new Item(), ...));
entries: {
"test": {
Item@12D23: { // This kind of fieldname is not desired
...
}
}
}
应该将“toString()”方法添加到项中。例如,我检查了以下示例:
public static class Item {
private String val1;
private int val2;
public Item(String val1, int val2) {
this.val1 = val1;
this.val2 = val2;
}
@Override
public boolean equals(Object obj) {
return obj instanceof Item && toString().equals(obj.toString());
}
@Override
public int hashCode() {
return toString().hashCode();
}
@Override
public String toString() {
return "val1=" + val1 + ",val2=" + val2;
}
}
这为简单映射wiht项(“AAA”,123)提供了这样的JSON字符串,指向“super!”:
{"val1=AAA,val2=123":"Super!"}
您甚至可以更进一步,使用Item.ToString中的ObjectMapper.WriteValueAsString为键文本生成Item的JSON表示。
我对Jackson有一个错误的理解,就是将json文件反序列化为poco。这是我的代码: 我的POCO命名为AnimalBean: }还有我的JSON文件: } 当我执行我的代码时,我有以下错误:未识别的字段“动物园”(类动画豆),未标记为可忽略的。我知道问题是我的json文件开始不直接由动物,但我不能改变它,因为它不是我的。我已经尝试把对象apper.configure(Deseriazatio
什么是最好的方法来实现杰克逊? 谢谢
我有以下POJO,可以序列化为字节或。 当试图反序列化正文时,该错误似乎是从请求类生成的: 我怎样才能正确地反序列化地图?
可以序列化/反序列化< code >映射吗 在这种特殊情况下,我知道总是,和 - 第三方类(我有序列化器和反序列化器),其他值是盒装原语。 有可能和杰克逊做这样的事吗?使用MapSerializer/MapDeserializer可以做到这一点吗?(我找不到任何例子)
我的POJO是:
问题内容: 我有一张看起来像这样的地图: 我的动词类如下: 我想序列化和反序列化我的VerbResult类的实例,但是当我这样做时,出现此错误: 我在网上阅读了您需要告诉杰克逊如何反序列化地图键的信息,但是我没有找到任何信息来解释如何进行此操作。动词类也需要在映射之外进行序列化和反序列化,因此任何解决方案都应保留此功能。 问题答案: 在此处给出的答案的基础上,建议使用反序列化器实现模块。所述Jod