Kin*_*isG 3 java json fasterxml
我目前有一个项目使用jackson rapid xml来使用自定义序列化器和反序列化器将POJO序列化/反序列化为Json.据我所知,ObjectMapper一旦创建和配置就是线程安全的.但是,我注意到在使用JMeter运行测试时偶尔会发生以下情况 -
似乎第二个线程进入时JsonGenerator实例正在重置 - 当然这不应该发生?我检查了几个站点和线程,看看是否有我需要设置的任何设置或功能,但从我的理解,ObjectMapper重用JsonGenerator实例,这可能是问题吗?
以下是我的自定义序列化程序的片段...
@Override
public final void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeStartObject();
... Code here ....
jsonGenerator.writeEndObject();
closeJsonGenerator(jsonGenerator);
}
Run Code Online (Sandbox Code Playgroud)
并举例说明了它的使用方法
SimpleModule sm = new SimpleModule();
sm.addSerializer(new myCustomSerializer());
new ObjectMapper().registerModule(sm)
.writeValue(new myObject());
Run Code Online (Sandbox Code Playgroud)
杰克逊为每个序列化请求ObjectMapper创建了一个新的JsonGenerator.从这个意义上说,它保证是线程安全的.我能看到的唯一可能导致您看到的行为的是您CustomSerializer是否有一些正在共享的实例字段并且正在进行某种内部同步.
| 归档时间: |
|
| 查看次数: |
6334 次 |
| 最近记录: |