1
resposta

Parser json para object

Não sei se esse dúvida está no lugar certo, mas vamos lá:

Minha aplicação tem frontend angular e um backend uma api rest. O meu problema é que quando envio um objeto json o java não está reconhecendo o objeto por completo.

No método "adicionarNota()" da classe "AnaliseResource", o objeto é reconhecido mas o atributo "analise" que é um objeto da classe Analise está sempre chegando null no java, mesmo eu enviando.

Objeto json enviado:

{
    "situacao": {
        "id": 2,
        "usuarioUltimaAlteracao": null,
        "dataUltimaAlteracao": null,
        "nome": "EM EXECUÇÃO"
    },
    "anexo": null,
    "analise": {
        "id": 6,
        "usuarioUltimaAlteracao": null,
        "dataUltimaAlteracao": 1481654922000,
        "aplicacao": {
            "id": 1,
            "usuarioUltimaAlteracao": null,
            "dataUltimaAlteracao": null,
            "nome": "APP1",
            "sigla": "APP1",
            "descricao": "APP1"
        },
        "numero": "201612130000000002",
        "assunto": "DASDASDASD",
        "numeroRDP": null,
        "numeroALM": null,
        "analista": "123456",
        "historico": [{
            "id": 3,
            "usuarioUltimaAlteracao": null,
            "dataUltimaAlteracao": 1481654922000,
            "situacao": {
                "id": 1,
                "usuarioUltimaAlteracao": null,
                "dataUltimaAlteracao": null,
                "nome": "ABERTO"
            },
            "assunto": "DASDASDASD",
            "descricao": "ASDASDAS  SADAS DASD ADASD",
            "anexo": null
        }],
        "urls": [],
        "dataCriacao": null,
        "ultimoHistorico": {
            "id": 3,
            "usuarioUltimaAlteracao": null,
            "dataUltimaAlteracao": 1481654922000,
            "situacao": {
                "id": 1,
                "usuarioUltimaAlteracao": null,
                "dataUltimaAlteracao": null,
                "nome": "ABERTO"
            },
            "assunto": "DASDASDASD",
            "descricao": "ASDASDAS  SADAS DASD ADASD",
            "anexo": null
        }
    },
    "assunto": "sdfsdfs",
    "descricao": "sadfasdf"
}

Minha classe que recebe a requisição:

AnaliseResource.java

@Path("analises")
@Api("Analise")
@RequestScoped
public class AnaliseResource {
    @POST
        @Path("/nota")
        public AnaliseHistorico adicionarNota(AnaliseHistorico historico) throws Exception  {
            gerenciadorAnalise.adicionarNota(historico);
            return historico;
        }
}

AnaliseHistorico.java

package br.com.app.modelo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonIgnore;

import br.com.bb.apm.modelo.base.BaseEntity;
import io.swagger.annotations.ApiModel;

/**
 * @author 123456
 *
 */
@ApiModel
@Entity
@Table(name="analise_historico")
public class AnaliseHistorico extends BaseEntity{

    /**
     * 
     */
    private static final long serialVersionUID = 7519309480674729269L;

    private Analise     analise;
    private Situacao     situacao;
    private String         assunto;
    private String         descricao;
    private String         anexo;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_analise_historico")
    public Long getId() {
        return (Long) super.getId();
    }

    @ManyToOne
    @JoinColumn(name = "id_analise", nullable = false)
    @JsonIgnore
    public Analise getAnalise() {
        return analise;
    }

    public void setAnalise(Analise analise) {
        this.analise = analise;
    }

    @ManyToOne
    @JoinColumn(name = "id_situacao", nullable = false)
    public Situacao getSituacao() {
        return situacao;
    }

    public void setSituacao(Situacao situacao) {
        this.situacao = situacao;
    }

    @Column(name = "ds_assunto")
    public String getAssunto() {
        return assunto;
    }

    public void setAssunto(String assunto) {
        this.assunto = assunto;
    }

    @Column(name = "tx_descricao")
    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    @Column(name = "ds_anexo")
    public String getAnexo() {
        return anexo;
    }

    public void setAnexo(String anexo) {
        this.anexo = anexo;
    }

}
1 resposta

Fala aí José blz?

Pelo que eu olhei nas suas classes aparentemente está correto.

Manda as classes Analise e Situacao para eu reproduzir e tentar te ajudar.