相关疑难解决方法(0)

Jackson JSON在序列化之前修改对象

我希望在序列化之前修改对象.我想编写一个自定义序列化程序来解析对象,然后将其传递给默认对象序列化程序.

这就是我所拥有的:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;

/**
 *
 * @author Me
 */
public class PersonSerializer extends JsonSerializer<Person>{

    @Override
    public void serialize(Person value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {

        //This returns a modified clone of Person value.
        Person safePerson = PrivacyService.getSafePerson(value);

        provider.defaultSerializeValue(safePerson, jgen);

    }

}
Run Code Online (Sandbox Code Playgroud)

但这只是一个无限循环.我也尝试过:

provider.findTypedValueSerializer(Person.class, true, null).serialize(safePerson, jgen, provider);
Run Code Online (Sandbox Code Playgroud)

这可行,但它不解析对象中的任何字段.

我也试过使用a @JsonFilter但它非常重,并且我的加载时间是六倍.

救命!谢谢!

java serialization json jackson

7
推荐指数
3
解决办法
7113
查看次数

标签 统计

jackson ×1

java ×1

json ×1

serialization ×1