我使用的是Jackson库vs 2.6.3。我想在类中定义序列化方法,并且我想指示Jackson在序列化对象时调用这个方法。
public interface AClass {
default String toJSON(){
return "{JSON}";
}
}
public class AnotherClass {
AClass aClass;
}
当我序列化anotherClass
时,我“假装”调用了Class
中的方法ToJSON
来返回对象的JSON视图。
有没有我可以在aclass
上使用的注释?
是的,这是可以使用@JSONValue和@JSONRAWValue注释的。这里有一个例子:
public class JacksonValue {
public interface AClass {
@JsonValue
@JsonRawValue
default String toJSON(){
return "{\"JSON\":true}";
}
}
public static class AnotherClass {
@JsonProperty
AClass aClass = new AClass() {};
}
public static void main(String[] args) throws JsonProcessingException {
final ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(new AnotherClass()));
}
}
输出:
{"aClass":{"JSON":true}}
我正在使用SpringMVC 3.2.4,并希望使用Jackson2将对象序列化为JSON输出。 对象具有递归属性。如果我尝试使用默认的Jackson ObjectMapper序列化它,我会得到一个递归错误。我意识到我可以使用来防止递归,然而,我实际上希望递归能够使在胡子模板中解析更容易。然而,我想限制递归级别。 是否需要指定Jackson序列化程序只递归1级?如果我需要创建自己的序列化程序,我可
但这只有在保证先设置start的情况下才起作用。
我有一个带有一些方法ma、mb、mc的对象A,这个对象实现了一个只有ma和mb的接口B。 当我序列化B时,我希望只有ma和mb作为json响应,但我也得到mc。 我希望自动化这种行为,以便我序列化的所有类都基于接口而不是实现进行序列化。 我该怎么做? 例子: 实现: 序列化: 回应: 预期响应:
问题内容: 我正在实现RESTful Web服务,其中用户必须与请求一起发送签名的验证令牌,以便可以确保请求不会被中间人篡改。我当前的实现如下。 验证令牌是一个VerifData对象,它序列化为String,然后进行哈希处理和加密。 在我的服务中,我将要序列化的数据放入VerifData的实例中,然后使用Jackson ObjectMapper对其进行序列化,并与验证令牌一起传递给验证引擎。 但是
我正在实现一个RESTful web服务,其中用户必须在请求的同时发送一个签名的验证令牌,这样我就可以确保请求没有被中间人篡改。我当前的实现如下所示。 验证令牌是一个VerifData对象,序列化为字符串,然后进行散列和加密。 有办法绕过这件事吗?我可以指定ObjectMapper要映射的属性的顺序吗(像按升序)?或者是否有任何其他方法可以最好地实现此验证步骤。客户端和服务器实现都是我开发的。我使
我有下面的课: 我希望它从Jackson处理的以下JSON中反序列化。 jackson-datatype-joda(https://github.com/fasterxml/jackson-datatype-joda) 自定义序列化程序(公共类JodaDateTimeJsonSerializer扩展JsonSerializer{...}-Spring@ResponseBody Jackson Js