java - ArrayList<Object> JSON -


i've 2 classes on backend:

produto

public class produto implements serializable {      @transient     @jsonserialize     @jsondeserialize     private set<filial> filials = new hashset<>();  //more fields //getters , setters 

filial

public class filial implements serializable {  @id private long id;  @column(name = "nm_filial") private string nmfilial;  //more fields //getters , setters 

the filiais property isn't database field , receives value way:

 @requestmapping(value = "/produtos/{id}",     method = requestmethod.get,     produces = mediatype.application_json_value) @timed public responseentity<produto> getproduto(@pathvariable long id) {      produto produto = produtoservice.findone(id);      set<filial> filials = produtofilialservice.findfiliaisbyidproduto(produto.getid());          produto.setfilials(filials);      return optional.ofnullable(produto)         .map(result -> new responseentity<>(             result,             httpstatus.ok))         .orelse(new responseentity<>(httpstatus.not_found)); } 

but when call class on frontend, json returned this:

{"id":1, "filials":[[1,"a"],[2,"as"]]} 

how can return array of object this:

{"id":1, "filials":[{"id":1, "nmfilial":"a"},{"id":2, "nmfilial":"as"}]} 

?

here work follow configuration:

in entity:

    @transient     @jsonserialize     @jsondeserialize     private list<filial> filiais = new arraylist<>(); 

the filial class:

import java.io.serializable;   public class filial implements serializable{      private long id;      private string nmfilial;      public filial(){}      public filial(long id, string nmfilial){         this.id = id;         this.nmfilial = nmfilial;     }      public long getid() {         return id;     }      public void setid(long id) {         this.id = id;     }      public string getnmfilial() {         return nmfilial;     }      public void setnmfilial(string nmfilial) {         this.nmfilial = nmfilial;     } } 

on repository:

@query(value = "select pf.filial produtofilial pf "         + "where pf.produto.id = :idproduto") arraylist<filial> findfiliaisbyidproduto(@param("idproduto") long idproduto); 

in service (just test)

produto.getfiliais().add(new filial(1l, "a")); produto.getfiliais().add(new filial(2l, "b")); 

and work:

...   "filiais": [     {       "id": 1,       "nmfilial": "a"     },     {       "id": 2,       "nmfilial": "b"     }   ] } 

Comments

Popular posts from this blog

unity3d - Rotate an object to face an opposite direction -

angular - Is it possible to get native element for formControl? -

javascript - Why jQuery Select box change event is now working? -