내 프로젝트에서 일대 다 매핑을 사용했습니다. 모든 사용자에 대한 클릭 목록을 저장했습니다. 그러나 getClicks() 메서드를 호출하여 목록을 검색 할 때 최대 절전 모드는 다른 형식으로 목록을 반환합니다. 이런 식으로. 최대 절전 1 대 다수 매핑, 매핑 된 목록 인쇄
그래서 나는 목록에서 모든 값을 읽고 새로운 목록에 할당했습니다.
List<Click> clicks=new ArrayList<Click>();
for(Click c: e.getClicks()){
\t Click temp = new Click();
\t temp.setAff_source(c.getAff_source());
\t temp.setCb_to_award(c.getCb_to_award());
\t temp.setCb_type(c.getCb_type());
\t clicks.add(temp); \t
}
이 목록의 결과 문자열에서 JSON을 작성해야합니다. 목록이 형식으로 반환되면 도움이되지 않습니다.
은 내가 Arrays.ToString (객체 O를) 시도 How to pretty print Hibernate query results?
를 제외하고이에 대한 아무 것도 찾을 수 없습니다. 그러나 그것은 효과가 없습니다. 어떤 도움에 감사드립니다 파트 -
Gson gson = new GsonBuilder()
\t \t .registerTypeAdapter(Click.class, new MyTypeAdapter<Click>())
\t \t .create();
List<Click> clicks=new ArrayList<Click>();
for(Click c: e.getClicks()){
\t Click temp = new Click();
\t temp.setAff_source(c.getAff_source());
\t temp.setCb_to_award(c.getCb_to_award());
\t temp.setCb_type(c.getCb_type());
\t temp.setCom_to_recieve(c.getCom_to_recieve());
\t temp.setStore_name(c.getStore_name());
\t temp.setT_date(c.getT_date());
\t temp.setT_status(c.getT_status());
\t temp.setT_ticket(c.getT_ticket());
\t temp.setUid(c.getUid());
\t System.out.println(c.toString());
\t clicks.add(temp); \t
}
String json = gson.toJson(clicks, Click.class);
Click.java
@Entity
@Table(name="click")
public class Click {
\t
\t @Id
\t @Column(name="t_ticket")
\t private String t_ticket;
\t
\t @Column(name="uid",nullable=false)
\t private long uid;
\t
\t public long getUid() {
\t \t return uid;
\t }
\t public void setUid(long uid) {
\t \t this.uid = uid;
\t }
\t @ManyToOne
\t @JoinColumn(name="uid",
\t \t \t \t insertable=false, updatable=false,
\t \t \t \t nullable=false)
\t private Earning earning;
\t
\t @Column(name="store_name")
\t private String store_name;
\t
\t @Column(name="t_status")
\t private String t_status;
\t
\t @Column(name="aff_source")
\t private String aff_source;
\t
\t @Column(name="com_to_recieve")
\t private float com_to_recieve;
\t
\t @Column(name="t_date")
\t private Date t_date;
\t
\t @Column(name="cb_to_award")
\t private float cb_to_award;
\t
\t @Column(name="cb_type")
\t private String cb_type;
\t public String getT_ticket() {
\t \t return t_ticket;
\t }
\t public void setT_ticket(String t_ticket) {
\t \t this.t_ticket = t_ticket;
\t }
\t
\t public Earning getEarning() {
\t \t return earning;
\t }
\t public void setEarning(Earning earning) {
\t \t this.earning = earning;
\t }
\t public String getStore_name() {
\t \t return store_name;
\t }
\t public void setStore_name(String store_name) {
\t \t this.store_name = store_name;
\t }
\t public String getT_status() {
\t \t return t_status;
\t }
\t public void setT_status(String t_status) {
\t \t this.t_status = t_status;
\t }
\t public String getAff_source() {
\t \t return aff_source;
\t }
\t public void setAff_source(String aff_source) {
\t \t this.aff_source = aff_source;
\t }
\t public float getCom_to_recieve() {
\t \t return com_to_recieve;
\t }
\t public void setCom_to_recieve(float com_to_recieve) {
\t \t this.com_to_recieve = com_to_recieve;
\t }
\t public Date getT_date() {
\t \t return t_date;
\t }
\t public void setT_date(Date t_date) {
\t \t this.t_date = t_date;
\t }
\t public float getCb_to_award() {
\t \t return cb_to_award;
\t }
\t public void setCb_to_award(float cb_to_award) {
\t \t this.cb_to_award = cb_to_award;
\t }
\t public String getCb_type() {
\t \t return cb_type;
\t }
\t public void setCb_type(String cb_type) {
\t \t this.cb_type = cb_type;
\t }
GSON 빌더.
[SomeType @ 2f92e0f4 "을 가져 오지 않고 Java 객체를 인쇄하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/29140402/how-do-i-print-my-java-object- without-getting-sometype2f92e0f4) –
@AlanHay 링크를 제공해 주셔서 감사합니다. –
괜찮지 만 앱 로직에 대해 toString()에 의존하지 마십시오. Jackson과 같은 라이브러리를 사용하여 객체를 Json으로 쉽게 변환하고 그 반대의 경우도 마찬가지입니다. http://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/ –