Problema com Metodo de Uma Api Json

bom dia a todos… Estou com um problema que acredito ser de facil solucao… Tenho uma classe CadCmp:

import java.io.Serializable;

public class CadCmp implements Serializable {

private long CmpCodigo = 0;
private String CmpDescri = "";

public void setCmpCodigo(long cmpcodigo) {
    this.CmpCodigo = cmpcodigo;
}

public long getCmpCodigo() {
    return this.CmpCodigo;
}

public void setCmpDescri(String cmpdescri) {
    this.CmpDescri = cmpdescri;
}

public String getCmpDescri() {
    return this.CmpDescri;
}

observem que os fields desta classe comecam com letras maiúsculas… CmpCodigo, CmpDescri
fiz uma api que me retorna um json desta classe… metodo:
@GET
@Path("/CadCmpConsulta")
@Produces(MediaType.APPLICATION_JSON)
public CadCmp getCadCmp(@QueryParam(“CmpCodigo”) long CmpCodigo) throws SQLException {
CadCmp cadcmp = cadcmpdao.Consulta1(CmpCodigo);
return cadcmp;
}
o problema é que este método me retorna o jgson:
{“cmpCodigo”:1,“cmpDescri”:“TESTE “}
e o google gson transforma esta classe da seguinte maneira:
{“CmpCodigo”:0,“CmpDescri”:””}
digo: {“CmpCodigo”:1,“CmpDescri”:"TESTE "}
observe que existe uma diferenca no nome dos campos… o método da api me retorna o json da mesma classe os fields iniciados com letra minúscula e o gson me retorna os fields iniciados com letra maiúscula…
O Gson não é o Mesmo JSon retornado pela api…
como resolver esse problema se nao posso alterar a classe para por os campos iniciando como minúsculas

Essa diferença existe pois a API não enxerga os fields, pois os mesmos são private. A api enxerga os getters e setters.
É por isso que existe uma convenção na nomenclatura e é por isso que devemos seguí-la.

Qual é a API que está usando para essa serialização em json?

a api que eu fiz e uma aplicação Jersey
e estou tratando com Gson
Como coloquei se eu pegar a mesma classe e gerar ela como Gson
ela me gera um json com as iniciais em maiúsculas
O meu maior problema é que não posso alterar a classe…
Não tem algo que eu deixe o Gson funcionando igual ao methodo que te passei?
Ora, se o método me retorno um json o Gson deveria também assumir o mesmo padrão

Não, o Gson ou o Jersey ou o Jackson ou qualquer outro vai seguir o padrão para o qual ele foi criado. Se fosse assim, não seria necessário padronizar, não concorda?

Lembre-se, nem todo problema é prego e nem toda solução é martelo. Você está tentando adaptar uma ferramenta a um problema que você tem e não vice-versa. Opte pela ferramenta que melhor atenda ao que você precisa. Se não encontrar nenhuma, crie uma ferramenta do zero.

dalan eu te entendo…
mas o Gson gera um texto diferente do @Produces(MediaType.APPLICATION_JSON) porque?
eu fiz o teste e realmente são diferentes…

Se eu tiver que realmente fazer essa alteração… levarei um tempo enorme… por isso estou batendo na tecla…
Não é uma alteração que em uma semana eu faça… São anos trabalhando com centenas de classes assim…
Não posso simplesmente vou mudar tudo…
e também acho que se for uma convenção o gson teria que seguila…
Entao independente de como eu tivesse feito a classe os dois resultados teriam que ser iguais

Existe uma coisa chamda documentação. O que a documentação do gson diz sobre isso? O que ele gera está em acordo com o que a documentação indica?

O que você disse foi:

A convenção JavaBeans que define a maneira como a nomenclatura de classes, atributos e métodos deve ser realizada é bem clara neste aspecto: fileds ou atributos tem primeira letra minúscula e seguem o padrão camelCase. Nunca tive problemas com o Gson para atributos com esse padrão.
Somente classes e constantes é que permitem primeira letra maiúscula e, não é o caso, correto?

Como você parece insistir em querer martelar tudo e fazer funcionar, fica bem difícil tentar dar um caminho, porém, dá uma olhada.
De novo: nem todo problema é prego, logo, não adianta achar que toda ferramenta é martelo e sair batendo, vai ter mais dor de cabeça que soluções.

Olha, ficou muito difícil entender o seu problema. Você poderia explicar com um pouco mais de clareza? Eu gostaria de ajudar. O seu texto deveria responder essas perguntas:

  1. O que eu estou recebendo da API?
  2. O que, nessa resposta da API, eu acho que está errado?
  3. O que eu gostaria de receber da API
  4. Qual é o código sobre o qual eu tenho controle? Que erro ocorre quando eu tento fazer a conversão?

Você mostrou uma classe modelo que pelo que eu entendi não é algo que você possa alterar. Isso acontece, programando no dia-a-dia encaramos várias situações diferentes. Mas qual é o código que você está escrevendo agora?

E por favor, tente usar corretamente a feature de syntax highlight para postar código. Realmente ajuda muito na hora de entender o seu problema

Rodrigo obrigado…
O problema da api conforme te mostrei é que no método dela retorna um json diferente do json retornado se eu fizesse uma conversão com o gson… acho que a rotina do Jersey que fabrica o json ele leva como base o padrão do java, que não esta errado, e o gson ele gera o json pegando a nomenclatura dos campos da classe. Mas tudo bem, eu resolvi alterar as minhas classes para seguir o padrão… Vai me dar um trabalho enorme, mas por outro lado eu sigo o padrão…
obrigado…