Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

transformar json em objeto ...

perguntei no tópico e não responderam , quero saber como consumir um json e transformar em um objeto do tipo cliente por exemplo, tanto no POST quanto no PUT o que fazer nessa linha para transformar o json no objeto da classe Projeto, como foi exemplificado no curso?

Projeto projeto = (Projeto) new XStream().fromXML(conteudo);

   @POST
   @Consumes(MediaType.APPLICATION_JSON)
    public Response adiciona(String conteudo) {
       Projeto projeto = (Projeto) new XStream().fromXML(conteudo);    
       new ProjetoDAO().adiciona(projeto);
       URI uri = URI.create("/projetos/" + projeto.getId());
       return Response.created(uri).build();
   }
2 respostas
solução!

Oi Michael, tudo bem ?

Vou tentar te ajudar.

O XStream, ele tem drivers que conseguem ler diversos tipos de arquivos, como XML, YAML e até mesmo o JSON.

Você pode indicar qual você está utilizando e pedir para ele criar o seu objeto :

public void recebeJson(String json){

        XStream xstream = new XStream(new JettisonMappedXmlDriver());
        xstream.alias("produto", Produto.class);
        Produto prod = (Produto)xstream.fromXML(json);

        System.out.println(prod);


}

Só para você entender o que rolou ai, quando criei o XStream, passei para ele qual é o Driver que ele devia usar, nesse caso o especifico para Json - JettisonMappedXmlDriver.

Depois mapeei ele para toda vez que encontre a chave produto no json ele transforme na classe Produto.

E por ultimo fiz a conversão , da mesma forma que estamos acostumados.

Espero ter ajudado.

Abraços

não funcionou, quero dar um POST no passando um json usando o jaxb, como no curso mostrou com xml