- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很想用这个:
@Getter
@ToString
@RequiredArgsConstructor(onConstructor_ = {@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)})
private static class RestErrorObject {
private final String error; // optional
private final String message; // optional
private final String path; // optional
private final String status; // optional
private final String timestamp; // optional
}
但是,我必须使用这个:
@Getter
@ToString
private static class RestErrorObject {
private final String error; // optional
private final String message; // optional
private final String path; // optional
private final String status; // optional
private final String timestamp; // optional
@JsonCreator
RestErrorObject(@JsonProperty("error") String error, @JsonProperty("message") String message,
@JsonProperty("path") String path, @JsonProperty("status") String status,
@JsonProperty("timestamp") String timestamp) {
this.error = error;
this.message = message;
this.path = path;
this.status = status;
this.timestamp = timestamp;
}
}
有什么方法可以将Lombok的RequiredArgsConstructor注释与Jackson的JsonCreator一起使用吗?问题似乎是由来已久的 Jackson 要求,即多参数构造函数中的每个参数都用 @JsonProperty 进行注释。我知道这是 Java 的事情(或者至少是 Java 8 的事情),Jackson 无法通过反射确定参数名称,因此注释必须存在,以便 Jackson 知道将每个字段从 json 传递到构造函数中的位置。可悲的是,这似乎是多余的。
最佳答案
我和你遇到了同样的问题,在这里找到了解决方案 https://projectlombok.org/features/constructor
To put annotations on the generated constructor, you can use onConstructor=@__({@AnnotationsHere}), but be careful; this is an experimental feature. For more details see the documentation on the onX feature.
@Getter
@ToString
@RequiredArgsConstructor(onConstructor=@__(@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)))
private static class RestErrorObject {
private final String error; // optional
private final String message; // optional
private final String path; // optional
private final String status; // optional
private final String timestamp; // optional
}
即使我没有发现对此 @__(...)
的引用,我也认为它将注释转换为编译器的常量。
关于java - 使用 LombokRequiredArgsConstructor 作为 JsonCreator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171839/
我有一个 POJO,例如 public class Category { public Collection items; public static class Item {
我正在使用 Jackson将 JSON 字符串反序列化为枚举。 public enum RoomType { SHARED("shared"), PRIVATE("private");
初始问题 是否可以有多个 @JsonCreator 方法,并让 jackson 根据方法定义检测应该使用哪一个? @JsonCreator public static StateOfComm fact
我正在尝试使用 Jackson 将一些 JSON 转换为一个类的实例,该类包含一些简单的字符串和另一个我正在使用 @JsonCreator 的类。看来 Jackson 无法创建其他类的实例。 问题是当
我正在尝试使用 jackson 将 json 反序列化为枚举。如果工厂方法只有一个参数,它工作正常。一旦我们添加更多参数,它就会停止工作。 这是我试过的代码示例。 public enum Test {
我正在尝试使用 Jackson 1.9.10 反序列化此类的一个实例: public class Person { @JsonCreator public Person(@JsonProperty("
我在使 RestEasy (3.0.10.Final) 将路径参数解析为枚举值时遇到问题。 有了枚举定义... package com.stines; import com.fasterxml.jac
我想使用主要构造函数用 @JsonCreator 进行注释,如下所示: // error @JsonCreator class User( @JsonProperty("username")
我在构造函数的参数上使用Jackson @JsonProperty(name) 注释,我遇到的每个文档都指出我们必须使用@JsonCreator 注释和@JsonProperty 才能正常工作,但即使
我很想用这个: @Getter @ToString @RequiredArgsConstructor(onConstructor_ = {@JsonCreator(mode =
我正在编写一个简单的 REST API,它将在给定主机名上安装/启动/停止代理。作为 API 的一部分,我正在创建一个 AgentInstruction 实例(代码如下)。由于某种原因,应用程序抛出
当我在嵌套字段上使用@JsonUnwrapped时: public class Person{ private int id; @JsonUnwrapped private F
我正在使用带有 JavaConfig 和 Jackson 2.4.3 的 Spring 4.1.1。 我的 Controller 看起来像这样: @RestController public inte
Jackson 似乎使用反射将附加属性直接写入字段,即使 @JsonCreator使用了构造函数,该字段标记为 final . 例子: public class Test { static c
我有以下实体,我将其用作对 Controller 的请求之一的目标 POJO: Entity @Table(name="user_account_entity") @JsonIgnorePropert
我正在使用 Jackson 序列化/反序列化不可变的 POJO。因为 POJO 是不可变的,所以我这样定义它们: class Foo { private final String bar;
我目前正在使用 Jackson 1.4.2 并尝试反序列化从我们的 UI 传回 Java Controller (Servlet) 的 code 值(类型信息的唯一标识符)。 有多种类型(例如 ABC
我有一个 Value 类,它包含一个值: public class Value { protected final Object value; @JsonValue publi
我有一些运行良好的旧代码,但现在我想在域对象中使用@JsonCreator,并且我能够重构所有内容,但我现在陷入了一个问题。在一种情况下,我的 Json 结构如下: [{ "name" :
我有一个包含很多字段的可序列化对象,其中一些是强制性的,其他是可选的。为了使这个对象易于使用,我尝试了 Builder Pattern with a Twist 。这很有效,但是生成的某些 Build
我是一名优秀的程序员,十分优秀!