Java Spring 在制作 JSON 时省略字段
Java Spring omits fields when making a JSON
public class ConnectedEntry {
private EntryInScores scores;
private EntryInValues values;
private String someString;
public ConnectedEntry(EntryInScores scores, EntryInValues values) {
this.scores = scores;
this.values = values;
this.someString = "Adasd";
}
我有一个看起来或多或少像这样的对象,我将它用作 API 的 GET 响应。 scores
和 values
都是数据库实体。我想在响应中添加一个带有一些附加信息的字符串。
对象被正确地转换为 JSON 并出现在响应中,但字符串被省略,没有错误:它不存在。
我尝试将字符串包装在包装器中 class,但没有用。
我能做什么?
您可以创建 json 对象并将数据作为键值对来解决此问题。
编码愉快!!!
通常 Spring 使用 Jackson 作为从对象到 JSON 的默认转换器。为了让 Jackson 转换为 JSON,您必须提供吸气剂,以便 Jackson 可以获取并转换这些值。正如我在您的陈述中看到的那样,您没有任何吸气剂。尝试为您希望转换的字段提供 getter。永远不要创建字段 public!
public class ConnectedEntry {
private EntryInScores scores;
private EntryInValues values;
private String someString;
public ConnectedEntry(EntryInScores scores, EntryInValues values) {
this.scores = scores;
this.values = values;
this.someString = "Adasd";
}
我有一个看起来或多或少像这样的对象,我将它用作 API 的 GET 响应。 scores
和 values
都是数据库实体。我想在响应中添加一个带有一些附加信息的字符串。
对象被正确地转换为 JSON 并出现在响应中,但字符串被省略,没有错误:它不存在。
我尝试将字符串包装在包装器中 class,但没有用。
我能做什么?
您可以创建 json 对象并将数据作为键值对来解决此问题。
编码愉快!!!
通常 Spring 使用 Jackson 作为从对象到 JSON 的默认转换器。为了让 Jackson 转换为 JSON,您必须提供吸气剂,以便 Jackson 可以获取并转换这些值。正如我在您的陈述中看到的那样,您没有任何吸气剂。尝试为您希望转换的字段提供 getter。永远不要创建字段 public!