当前位置:  开发笔记 > 编程语言 > 正文

在Spring MVC中使用Jackson将Map序列化为一对夫妇

如何解决《在SpringMVC中使用Jackson将Map序列化为一对夫妇》经验,为你挑选了1个好方法。

首先,我知道我要做的事情可以使用自定义来完成JsonSerializer,但我想知道是否有更少的样板代码解决方案.

Spring MVC,我想将序列Map化为一对夫妇.假设我想回复这样一个Map:

Map res = new HashMap<>();
res.put("key1", "value1");
res.put("key2", "value2");

默认的序列化结果将JSON如下所示:

{key1: value1, key2: value2}

有没有办法让这样的东西,而不使用自定义JsonSerializer

[{key: "key1", value: "value1"}, {key: "key2", value: "value2"}]

我正在使用Spring-Boot 1.3默认版本的Spring MVCJackson.



1> Rémi Doolaeg..:

由于我更喜欢​​可重用的解决方案,并且找不到标准解决方案,因此我使用自定义实现了它JsonSerializer,如下所示:

public class MapToCoupleArraySerializer extends JsonSerializer>{

    @Override
    public void serialize(Map value, JsonGenerator generator,
            SerializerProvider serializers) throws IOException,
            JsonProcessingException {
        generator.writeStartArray();
        for (Entry entry : value.entrySet()){
            generator.writeStartObject();
            generator.writeObjectField("key", entry.getKey());
            generator.writeObjectField("value", entry.getValue());
            generator.writeEndObject();
        }       
        generator.writeEndArray();
    }    
}

并以传统的Spring方式使用它:

public class MyClassToSerialize{

    @JsonSerialize(using = MapToCoupleArraySerializer .class)
    private Map recipes;

    // ...
}

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有