Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Springdata pageable时如何隐藏json字段?_Spring_Spring Boot_Spring Data Jpa_Spring Data_Mybatis - Fatal编程技术网

使用Springdata pageable时如何隐藏json字段?

使用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上添加注释,也可以使用 下面是如何在没有任何注释的情况下排除字段(如果需要,也可以使用

目前我正在使用SpringData构建我的restful项目

我正在使用pagefindall(Pageable-Pageable,X条件,字符串…列),此方法。结果如下所示:

{

}

问题是如何在内容中隐藏一些特定的json字段? 并且@JsonIgnore注释是不灵活的,我在不同的api中需要的字段是不同的

我试图编写注释,但在处理页面时,我发现内容是不可修改的


所以,希望有人能帮助我。如果您不想在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)