如何将列表转换为可读格式

how to convert list into readable format

当我执行这段代码时,我得到了解决方案。我需要将列表转换为可读格式。我的道代码是

    public List<Data> getData() {
    // TODO Auto-generated method stub
    System.out.println("In getData dao************");
    session=sessionFactory.openSession();
    tx=session.beginTransaction();
    List<Data> blist=session.createCriteria(>.class).list();
    System.out.println("datalist dao************"+blist);
    tx.commit();
    session.close();
    return blist;
}

Data.java

@Entity
@Table(name="tbl_genere")
public class Data implements Serializable{
private static final long serialVersionUID = 1L;

@Id
@Column(name="dataid")
private String DataId;

@Column(name="dataname")
private String DataName;

public String getDataId() {
    return DataId;
}

public void setDataId(String dataId) {
    DataId = dataId;
}

public String getDataName() {
    return DataName;
}

public void setDataName(String dataName) {
    DataName = dataName;
}

}

我找到了解决方案,但格式不可读。如何将其转换为可读格式?答案是dao************[com.pack.web.model.Data@1233c96, com.pack.web.model.Data@5ec471]。但我需要将列表存储为 json 格式的文件。我该怎么做。

您将必须覆盖对象的 toString()。如下使用或根据您的要求进行更改。

   @Entity
        @Table(name="tbl_genere")
        public class Data implements Serializable{
        private static final long serialVersionUID = 1L;

        @Id
        @Column(name="dataid")
        private String DataId;

        @Column(name="dataname")
        private String DataName;

        public String getDataId() {
            return DataId;
        }

        public void setDataId(String dataId) {
            DataId = dataId;
        }

        public String getDataName() {
            return DataName;
        }

        public void setDataName(String dataName) {
            DataName = dataName;
        }

        public String toString(){
        return DataId+","+DataName;
        }
}

在您的 Data class

中覆盖 toString()
 @Override
    public String toString() {
        return "Data{" +
                "DataId='" + DataId + '\'' +
                ", DataName='" + DataName + '\'' +
                '}';
      }

然后在您的 getData() 方法中。

 for(int i=0;i<blist.size();i++){
            System.out.println(blist.toString());  
  }

List 正在将 Data 作为通用。在 Data class 和 Sysout 中覆盖 tostring() 方法使用 Arrays.toString(blist.toArray());您将获得可读格式的答案。

您可以在toString方法中构建JSON格式输出,如下所示:

@Override
    public String toString(){
     StringBuilder builder=new StringBuilder();
     builder.append("{Data : {DataId:\'").append(DataId).append("\' , DataName: \'")
        .append(DataName).append("\' } }");
     builder.toString();
    }

注意:确保转义 single/double 引号以获得正确的 json 输出。