Rest 使用Jackson和Guice自定义序列化程序和反序列化程序
我目前正在尝试添加一个自定义序列化程序和反序列化程序,用于使用Jackson Guice和Jersey的REST API。我一直在尝试使用对象映射器和Rest 使用Jackson和Guice自定义序列化程序和反序列化程序,rest,jersey,jackson,jax-rs,guice,Rest,Jersey,Jackson,Jax Rs,Guice,我目前正在尝试添加一个自定义序列化程序和反序列化程序,用于使用Jackson Guice和Jersey的REST API。我一直在尝试使用对象映射器和JacksonJsonProvider将它们链接起来。如何在不向User类添加注释的情况下执行此操作 public class UserSerializer extends JsonSerializer<User>{ @Override public void serialize(User value, JsonGen
JacksonJsonProvider
将它们链接起来。如何在不向User
类添加注释的情况下执行此操作
public class UserSerializer extends JsonSerializer<User>{
@Override
public void serialize(User value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeStringField("name",value.getName());
jgen.writeStringField("email",value.getEmail());
jgen.writeStringField("first-name",value.getFirstName());
jgen.writeStringField("last-name", value.getLastName());
jgen.writeStringField("key",value.getKey().toString());
jgen.writeObjectField("type",value.getType());
jgen.writeEndObject();
}
}
但是,addSerializer
似乎也有错误,它带有红色下划线 解决了
实际的问题是,当我尝试将UserSerializer传递给addSerializer时,经常会出现错误。我刚刚意识到我输入了错误的JsonSerializer。我导入了databind.JsonSerializer,而不是map.JsonSerializer
:)解决了
实际的问题是,当我尝试将UserSerializer传递给addSerializer时,经常会出现错误。我刚刚意识到我输入了错误的JsonSerializer。我导入了databind.JsonSerializer,而不是map.JsonSerializer
:)是否有任何特殊原因不向
用户
类添加注释?因为这样我就必须在另一个项目中包含依赖项。要使用批注。请确保您的Jackson主要版本一致,即您没有同时使用fasterxml和CodeHause是否有任何特殊原因不向用户
类添加批注?因为这样我就必须在另一个项目中包含依赖项。要使用注释,请确保您的主要版本一致,即您没有同时使用fasterxml和codehaus
ObjectMapper mapper = new ObjectMapper();
SimpleModule test = new SimpleModule(null, null);
test.addSerializer(User.class,new UserSerializer());
mapper.registerModule(test);
JacksonJsonProvider provider = new JacksonJsonProvider(mapper);
bind(JacksonJsonProvider.class).toInstance(provider);