如何使用toString序列化Map的内容?

时间:2016-09-02 12:36:28

标签: java scala json4s

我试图使用json4s本机库。以下是我如何使用它:

Builder b = new JsonMessageBuilder();
Map<String, List<Object>> m2 = new HashMap<>();
m2.put("e", Arrays.asList(new StringBuilder(123)));
b.message(JavaConverters.mapAsScalaMapConverter(m2).asScala());

public static class Test{
    @Override
    public String toString(){
        return "test";
    }
}

哪里

class JsonMessageBuilder{
    def message[A <: AnyRef](a: A) = println(Serialization.write(a))
}

但代码打印出来:

{"e":[{}]}

如何强制将toString结果序列化到地图中?我想要

{"e":["test"]}

1 个答案:

答案 0 :(得分:1)

最有可能的问题是,您没有正确地实例化StringBuilder,即不将参数123括在引号中。这就是为什么你得到一个空的stringbuilder。在打印{"e":[{}]}时正确进行序列化。试试这个:

m2.put("e", Arrays.asList(new StringBuilder("123")));