java - 如何将多个 Map<String,String> 解包为 Json

标签 java json jackson json-deserialization

如何将多个 Map 解包为 JSON。示例

public class Class {
Map<String,String> firstMap;
Map<String,String> secondMap;
}

我只能对一个 Map 字段使用 @JsonAnyGetter。我还知道我可以使用自定义序列化器,但我在类中有更多字段,我不想更改反序列化方法。 首选 JSON 输出:

{
    "Name": "Name",
    "LastName": "LastName",
    "firstMapKey": "firstMapValue"
    "secondMapKey": "secondMapValue"
}

而不是:

{
    "Name": "Name",
    "LastName": "LastName",
    "firstMap": {
        "firstMapKey": "firstMapValue"
    },
    "secondMap": {
        "secondMapKey": "secondMapValue"
    }
}

最佳答案

@JonK 帮助了我:我添加了一张额外的 map 并将两张 map 合并到其中。对于附加 map ,我对用于合并的两个 map 使用了 @JsonAnyGetter 和 @JsonIgnore。

public class Class {
    @JsonIgnore
    Map<String,String> firstMap;
    @JsonIgnore
    Map<String,String> secondMap;

    Map<String,String> compositeMap

    @JsonAnyGetter
    public Map<String, String> getCompositeMap() {
        return compositeMap;
    }

    @JsonAnySetter
    public void setCompositeMap(Map<String, String> compositeMap) {
        this.compositeMap = compositeMap;
    }

}

关于java - 如何将多个 Map<String,String> 解包为 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60225505/

相关文章:

java - log4j DailyRollingFileAppender 不添加页脚

json - SuperObject 多维数组

java - java jackson 的不同序列化/反序列化名称

android - Spring Android REST 模板解析内容类型为 text/html 的 JSON 数据

java - 有没有办法在运行时忽略 Jackson 字段而不使用 @JsonIgnore

java - 简单的平均误差,找不到正确的代码

Java 代理不会加载到 JVM 中

Java Android : How to extract method with context as parameter

java - 使用哨兵停止线程不起作用

python - Pandas Dataframe 中的嵌套嵌套列