1
resposta

Converter json em XML

Galera, preciso de ajuda, tenho que fazer uma consulta no banco em um campo que armazena XML e o front-end me envia json. É uma consulta de log, então a front vai sempre me mandar no json o primeiro campo como o nome da tabela e o outro será uma lista de parâmetros, o que preciso é pegar o segundo parâmetro(lista) em json e converter para xml. Tenho que usar o Jackson. Alguém pode me ajudar?

json de entrada: { "nmtabela":"CLIENTES", "params": [ { "ID": "45096" }, { "PENDENCIA":"S" } ] }

XML de saída(o que eu preciso, mas não estou conseguindo) 45096S

Classe Endpoint e método extracao que recebe a request

public Response extracao(@PathParam("mapping") String mapping, Map<String, Object> values) {

    // verifica se existe uma entrada para o mapping solicitado
    try (InputStream is = LogsEndpoint.class.getResourceAsStream("/rs/logs/queries/receber/" + mapping + ".json")) {
        if (is != null) {
            StringBuilder valorXML = new StringBuilder();
            Map<String, Object> map = new HashMap<>();

//* aqui é o ponto em que preciso converter o value em xml fiz algumas tentativas mas não tive sucesso*//

            for (Map.Entry<String, Object> v : values.entrySet()) {
                if (v.getKey().equals("nmtabela")) {
                    map.put(v.getKey(), v.getValue());
                } else if (v.getKey().equals("params")) {

                    ObjectMapper objectMapper = new ObjectMapper();
                    byte[] test;
                    test = objectMapper.writeValueAsBytes(v.getValue());
                    System.out.println(objectMapper.toString());
                }
            }

            return Response.ok((new QueryProcessorLogs()).execute(is, values)).build();
        } else {
            return Response.status(Response.Status.BAD_REQUEST).entity(new FailedResponse("Modelo de extração inválido")).build();
        }
    } catch (RuntimeException e) {
        LelloServicesLogger.severe(e);
        return Response.status(Response.Status.BAD_REQUEST).entity(new FailedResponse(e.getMessage())).build();
    } catch (Exception e) {
        LelloServicesLogger.severe(e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(new FailedResponse("Houve um problema na extração do conteúdo")).build();
    }
}
1 resposta

Oi Roberto, por algum motivo, parece que o tópico ficou duplicado, vamos centralizar a solução em um só? Vou deixar o link do outro tópico aqui pra quem quiser participar ir pra lá, tá bem?

Link: https://cursos.alura.com.br/forum/topico-converter-json-em-xml-78064