如何删除json中不需要的细节

时间:2014-06-09 08:39:45

标签: java json spring hibernate jpa

我有以下课程

@Configurable
@Entity
public class QuestionOption {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

    @Version
    @Column(name = "version")
    private Integer version;
    private boolean isDeleted; 
    public boolean isDeleted() {
        return isDeleted;
    }

    public void setDeleted(boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


}


@Configurable
@Entity
public class ClientQuestionOption {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;

@Version
@Column(name = "version")
private Integer version;

@ManyToOne
private ClientQuestion cqid;

@ManyToOne
private QuestionOption oid;
private boolean isDeleted; 
public boolean isDeleted() {
    return isDeleted;
}

public void setDeleted(boolean isDeleted) {
    this.isDeleted = isDeleted;
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public Integer getVersion() {
    return version;
}

public void setVersion(Integer version) {
    this.version = version;
}

public ClientQuestion getCqid() {
    return cqid;
}

public void setCqid(ClientQuestion cqid) {
    this.cqid = cqid;
}

public QuestionOption getOid() {
    return oid;
}

public void setOid(QuestionOption oid) {
    this.oid = oid;
}

}

/////////////////////////////

@Configurable
@Entity
public class ClientQuestion {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

    @Version
    @Column(name = "version")
    private Integer version;

    @NotNull
    @ManyToOne
    private Client cid;

    @ManyToOne
    private ParentQuestion pqid;

    @ManyToOne
    private QuestionType qtid;
    private boolean isDeleted; 
    public boolean isDeleted() {
        return isDeleted;
    }

    public void setDeleted(boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Client getCid() {
        return cid;
    }

    public void setCid(Client cid) {
        this.cid = cid;
    }

    public ParentQuestion getPqid() {
        return pqid;
    }

    public void setPqid(ParentQuestion pqid) {
        this.pqid = pqid;
    }

    public QuestionType getQtid() {
        return qtid;
    }

    public void setQtid(QuestionType qtid) {
        this.qtid = qtid;
    }


}

//////////////////////////

@Configurable
@Entity
public class ParentQuestion {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

    @Version
    @Column(name = "version")
    private Integer version;

    @NotNull
    @ManyToOne
    private Parent pid;

    @ManyToOne
    private Question qid;

    private boolean isDeleted; 

    public boolean isDeleted() {
        return isDeleted;
    }

    public void setDeleted(boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Parent getPid() {
        return pid;
    }

    public void setPid(Parent pid) {
        this.pid = pid;
    }

    public Question getQid() {
        return qid;
    }

    public void setQid(Question qid) {
        this.qid = qid;
    }


}

以及其他一些课程

我正在创建一个json,就像这样

 savedQuestionOptionsList=(List<QuestionOption>)serviceClientServiceImpl.getAllSavedQuestionOptionsList(parentId , Long.valueOf(clientId) );
object.accumulate("savedQuestionOptionsList",savedQuestionOptionsList );

这是我的服务代码

public List<QuestionOption> getAllSavedQuestionOptionsList(Long parentId,long clientId)
{
    Client client = (Client) entityManagerUtil.find(Client.class, clientId);
    List<QuestionOption>  questionsList =   (List<QuestionOption>)serviceClientDaoImpl.getAllSavedQuestionOptionsList(parentId,client);
    System.out.println("The size is nnnnnnnnnn "+questionsList.size());
    for(int i=0;i<questionsList.size();i++)
     {
 System.out.println("\n"+i+"question option listssssssssssssssssssssssssssssssssssssssssss");
 //System.out.println(i+"..qtid::"+questionsList.get(i).getName());
 questionsList.get(i).getName();


     }

return questionsList;
}

这是我的代码

public List<QuestionOption> getAllSavedQuestionOptionsList(Long pid,Client client)
{
    Long cid=client.getId();
    System.out.println("cid " +cid);
    System.out.println("clisnt  "+client.toString());//qt,cq,p,q
    //String queryString="SELECT distinct q FROM Question q , ParentQuestion pq ,Parent p where pq.qid.id = q.id and  p.id = pq.pid.id and q.isDeleted=false  AND p.id = "+pid+" AND (q.cid.id="+cid+" or q.cid=null)";
    String queryString="SELECT qo,cq from QuestionOption qo,ClientQuestionOption cqo,ClientQuestion cq,ParentQuestion pq,Parent p  ," +
    "Question q ,QuestionType qt     WHERE qo.id=cqo.oid.id and cqo.cqid.id=cq.id and cq.qtid.id=4 AND cq.pqid.id=pq.id AND " +
    "pq.pid.id=p.id AND pq.qid.id=q.id AND pq.pid.id=:pid AND cq.cid.id=:cid";
    Query query=entityManagerUtil.getQuery(queryString);
    query.setParameter("pid",pid);
    query.setParameter("cid",cid);
    List<QuestionOption>  questionsList =   (List<QuestionOption>)query.getResultList();
    return questionsList;

}

我只想查询问题和ClientQuestion的详细信息,但json提供了所有权利类的详细信息

请告诉我怎么做?

1 个答案:

答案 0 :(得分:1)

使用@jsonignore annatotion,jackson - springs default converter的一部分。

然后,你可以只想知道你不想被序列化,它从你的片段中清楚你是如何进行json序列化的。但是如果你使用弹簧,杰克逊就是你的选择。