使用Springdata pageable时如何隐藏json字段?
目前我正在使用SpringData构建我的restful项目 我正在使用pagefindall(Pageable-Pageable,X条件,字符串…列),此方法。结果如下所示: { } 问题是如何在内容中隐藏一些特定的json字段? 并且@JsonIgnore注释是不灵活的,我在不同的api中需要的字段是不同的 我试图编写注释,但在处理页面时,我发现内容是不可修改的使用Springdata pageable时如何隐藏json字段?,spring,spring-boot,spring-data-jpa,spring-data,mybatis,Spring,Spring Boot,Spring Data Jpa,Spring Data,Mybatis,目前我正在使用SpringData构建我的restful项目 我正在使用pagefindall(Pageable-Pageable,X条件,字符串…列),此方法。结果如下所示: { } 问题是如何在内容中隐藏一些特定的json字段? 并且@JsonIgnore注释是不灵活的,我在不同的api中需要的字段是不同的 我试图编写注释,但在处理页面时,我发现内容是不可修改的 所以,希望有人能帮助我。如果您不想在POJO上添加注释,也可以使用 下面是如何在没有任何注释的情况下排除字段(如果需要,也可以使用
所以,希望有人能帮助我。如果您不想在POJO上添加注释,也可以使用 下面是如何在没有任何注释的情况下排除字段(如果需要,也可以使用注释,但您可以选择) 或者使用flexjson
import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;
import flexjson.transformer.DateTransformer;
public String toJson(User entity) {
return new JSONSerializer().transform(new DateTransformer("MM/dd/yyyy HH:mm:ss"), java.util.Date.class)
.include("wantedField1","wantedField2")
.exclude("unwantedField1").serialize(entity);
}
如果不想在POJO上添加注释,也可以使用 下面是如何在没有任何注释的情况下排除字段(如果需要,也可以使用注释,但您可以选择) 或者使用flexjson
import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;
import flexjson.transformer.DateTransformer;
public String toJson(User entity) {
return new JSONSerializer().transform(new DateTransformer("MM/dd/yyyy HH:mm:ss"), java.util.Date.class)
.include("wantedField1","wantedField2")
.exclude("unwantedField1").serialize(entity);
}
必须使用自定义序列化,如下所示:
@JsonComponent
public class MovieSerializer extends JsonSerializer<Movie> {
@Override
public void serialize(Movie movie, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeStartObject();
// The basic information of a movie
jsonGenerator.writeNumberField("id", movie.getId());
jsonGenerator.writeStringField("name", movie.getName());
jsonGenerator.writeStringField("poster", movie.getPoster());
jsonGenerator.writeObjectField("releaseDate", movie.getReleaseDate());
jsonGenerator.writeObjectField("runtime", movie.getRuntime());
jsonGenerator.writeStringField("storyline", movie.getStoryline());
jsonGenerator.writeStringField("rated", movie.getRated());
jsonGenerator.writeNumberField("rating", movie.getRating());
jsonGenerator.writeEndObject();
}
}
@JsonComponent
公共类MovieSerializer扩展了JsonSerializer{
@凌驾
public void serialize(电影电影、JsonGenerator JsonGenerator、SerializerProvider SerializerProvider)引发IOException{
jsongGenerator.writeStartObject();
//电影的基本信息
jsonGenerator.WriteEnumberField(“id”,movie.getId());
jsonGenerator.writeStringField(“name”,movie.getName());
jsonGenerator.writeStringField(“poster”,movie.getPoster());
jsonGenerator.WriteObject字段(“releaseDate”,movie.getReleaseDate());
jsonGenerator.WriteObject字段(“runtime”,movie.getRuntime());
jsonGenerator.writeStringField(“故事线”,movie.getStoryline());
jsonGenerator.writeStringField(“rated”,movie.getRated());
jsongGenerator.WriteEnumberField(“rating”,movie.getRating());
jsongGenerator.writeEndObject();
}
}
然后用:
@JsonSerialize(using=MovieSerializer.class)
注释模型类,您必须使用如下自定义序列化:
@JsonComponent
public class MovieSerializer extends JsonSerializer<Movie> {
@Override
public void serialize(Movie movie, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeStartObject();
// The basic information of a movie
jsonGenerator.writeNumberField("id", movie.getId());
jsonGenerator.writeStringField("name", movie.getName());
jsonGenerator.writeStringField("poster", movie.getPoster());
jsonGenerator.writeObjectField("releaseDate", movie.getReleaseDate());
jsonGenerator.writeObjectField("runtime", movie.getRuntime());
jsonGenerator.writeStringField("storyline", movie.getStoryline());
jsonGenerator.writeStringField("rated", movie.getRated());
jsonGenerator.writeNumberField("rating", movie.getRating());
jsonGenerator.writeEndObject();
}
}
@JsonComponent
公共类MovieSerializer扩展了JsonSerializer{
@凌驾
public void serialize(电影电影、JsonGenerator JsonGenerator、SerializerProvider SerializerProvider)引发IOException{
jsongGenerator.writeStartObject();
//电影的基本信息
jsonGenerator.WriteEnumberField(“id”,movie.getId());
jsonGenerator.writeStringField(“name”,movie.getName());
jsonGenerator.writeStringField(“poster”,movie.getPoster());
jsonGenerator.WriteObject字段(“releaseDate”,movie.getReleaseDate());
jsonGenerator.WriteObject字段(“runtime”,movie.getRuntime());
jsonGenerator.writeStringField(“故事线”,movie.getStoryline());
jsonGenerator.writeStringField(“rated”,movie.getRated());
jsongGenerator.WriteEnumberField(“rating”,movie.getRating());
jsongGenerator.writeEndObject();
}
}
然后用:@JsonSerialize(using=MovieSerializer.class)