我试图使用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"]}
答案 0 :(得分:1)
最有可能的问题是,您没有正确地实例化StringBuilder,即不将参数123括在引号中。这就是为什么你得到一个空的stringbuilder。在打印{"e":[{}]}
时正确进行序列化。试试这个:
m2.put("e", Arrays.asList(new StringBuilder("123")));