java jackson编组结果放入一个映射奇怪的行为
我在生产中有这个代码
final Map<String, String> parameters = new HashMap<String, String>();
parameters.put(FIELDTRACES, new ObjectMapper().writer().writeValueAsString(dlcTransformer.toEntityList(vo.getFieldTraces())));
这在某些情况下是失败的(当从反序列化的JMS消息中检索到“vo”对象时):put操作没有向映射添加任何内容
经过各种测试后,我完成了这项工作,似乎解决了问题:
final String fieldTraces = new ObjectMapper().writer().writeValueAsString(dlcTransformer.toEntityList(vo.getFieldTraces()));
parameters.put(FIELDTRACES, fieldTraces);
临时变量如何改变行为
jackson映射器来自jackson-mapper-asl-1.9.10
下面是ObjectWriter.writeValueAsString()
实现
public String writeValueAsString(Object value)
throws IOException, JsonGenerationException, JsonMappingException
{
// alas, we have to pull the recycler directly here...
SegmentedStringWriter sw = new SegmentedStringWriter(_jsonFactory._getBufferRecycler());
_configAndWriteValue(_jsonFactory.createJsonGenerator(sw), value);
return sw.getAndClear();
}
在我试图牺牲一只鸡之前,有人有什么想法吗
共 (0) 个答案