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

Json

Senhores estou com seguinte erro:

System.out.println(pjsonRetorno);
[{"refugo": "01","descricao": "QUEIMA DE GASES"},{"refugo": "02","descricao": "AFLORAMENTO"},{"refugo": "03","descricao": "LINHA DE FLUXO"}]


        Gson gsonRet = new Gson();
        JsonObject jsonObjectRet =  (JsonObject) gsonRet.fromJson(pjsonRetorno, JsonElement.class ) ;

mar 08, 2018 12:44:52 PM org.apache.axis.utils.JavaUtils isAttachmentSupported
ADVERTÊNCIA: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Exception in thread "main" java.lang.ClassCastException: com.google.gson.JsonArray cannot be cast to com.google.gson.JsonObject
    at br.com.cie.webcliente.TotvsWs.main(TotvsWs.java:80)

Porque estou tomando esta Exception, como resolver?

7 respostas

Oi Jorge, tudo bem ?

Seu json te dá um lista e você está tentando guardar a referencia em um objeto, nisso está gerando a exception.

solução!

Boa tarde, Jorge! Como vai?

Sua mensagem de erro diz que não consegue transformar um JsonArray em um JsonObject.

Exception in thread "main" java.lang.ClassCastException: com.google.gson.JsonArray cannot be cast to com.google.gson.JsonObject

Que é exatamente o que vc está tentando fazer na linha:

JsonObject jsonObjectRet =  (JsonObject) gsonRet.fromJson(pjsonRetorno, JsonElement.class );

Para resolver o problema faça o seguinte:

JsonArray jsonObjectRet =  (JsonArray) gsonRet.fromJson(pjsonRetorno, JsonElement.class ) ;

Veja se resolve e dá um retorno pra gente!

Grande abraço!

Gabriel, boa tarde

Cara sua dica foi ótima para meu entendimento... resolveu..

Sou novo em Java estou no se vira nos 30 para fazer uma aplicação consumindo WebService no ERP da Totvs e esta indo...

depois da sua dica fiz este codigo nao sei se está um dos melhores mais esta fusionando ...kkk

codigo:

Gson gsonArray = new Gson();

JsonArray jsonArray = (JsonArray) gsonArray.fromJson(pjsonRetorno, JsonElement.class);

ArrayList listaRefugo = new ArrayList();

for (int i = 0; i < jsonArray.size(); i++) {

JsonElement element = jsonArray.get(i); String JsonString = element.toString();

JsonObject jsonObjRet = (JsonObject) gson.fromJson(JsonString, JsonElement.class);

MotivoRefugo motivoRefugo = new MotivoRefugo();

motivoRefugo.setRefugo(jsonObjRet.get("refugo").getAsString()); motivoRefugo.setDescricao(jsonObjRet.get("descricao").getAsString());

listaRefugo.add(motivoRefugo);

}

for (MotivoRefugo motivoRefugo : listaRefugo) {

System.out.println(motivoRefugo.getRefugo() + " - " + motivoRefugo.getDescricao());

}

Resultado:

01 - QUEIMA DE GASES 02 - AFLORAMENTO 03 - LINHA DE FLUXO

É isso aí, Jorge! Fico feliz por ter te ajudado!

Sempre que tiver alguma dúvida não hesite em procurar o pessoal aqui no fórum!

Grande abraço!

Ok valeu mesmo