有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案