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
Post a Comment