Parsing JSON Ajuda
18/02/2020 15:54
0
Prezados,

Tenho um método que recupera um json do banco de dados, e este json contém dentro deles JSONArrays. Estou com um problema que, quando eu instancio este JSON como um JSON Object, não sei porque, todos os meus {} viram [] e quando eu vou manipular no código, recebo uma mensagem informando que 
JSONArray[1] is not a JSONObject
. Isso quer dizer que ele não sabe o que se trata de um JSONObject e o que que é um JSONArray.

Deve estar havendo algum problema na conversão do dado quando eu instancio como JSONObject.

Se vocês pudessem me ajudar, eu ficaria agradecido.

JSONObject jsonFields = new JSONObject(doc.fields)

Quando eu dou um print apenas da variável
doc.fields
, que vem direto do banco, ele me retorna certinho:


{"highlights":[{"label":"","value":"Rafael França Marques da Silva"},{"label":"","value":"Biomédico"},{"label":"","value":"3a. Região"},{"label":"","value":"Ativo"}],"partId":"40284db66f7b093e016f7b09767c002c","screens":[{"scope":"Dados profissionais","style":{"alignItems":"center","color":"gray","fontSize":14,"fontWeight":"bold"},"fields":[{"label":"Registro","value":"8665885698-5623-RJ"}]},[{"scope":"Dados funcionais","style":{"alignItems":"center","color":"gray","fontSize":14,"fontWeight":"bold"},"fields":[{"label":"Registro","value":"8665885698-5623-RJ"}]}]],"photo":"b64","style":{"backgroundColor":"blue","backgroundImage":"black"},"typeId":"ff80818170595e360170595faf780000","userId":"40284db66f7b093e016f7b0972cd000n"}


Quando eu dou um print em JSONObject jsonFields = new JSONObject(doc.fields),  ele efetua as substituições de {} por [], causando confusão no JSONArray e no JSONObject. Eu preciso instanciar como JSONObject para manipular o Json:

[highlights:[[label:, value:Rafael França Marques da Silva], [label:, value:Biomédico], [label:, value:3a. Região], [label:, value:Ativo]], partId:40284db66f7b093e016f7b09767c002c, screens:[[scope:Dados profissionais, style:[alignItems:center, color:gray, fontSize:14, fontWeight:bold], fields:[[label:Registro, value:8665885698-5623-RJ]]], [[scope:Dados funcionais, style:[alignItems:center, color:gray, fontSize:14, fontWeight:bold], fields:[[label:Registro, value:8665885698-5623-RJ]]]]], photo:b64, style:[backgroundColor:blue, backgroundImage:black], typeId:ff80818170595e360170595faf780000, userId:40284db66f7b093e016f7b0972cd000n]

Observem que ele não apenas troca {} por [], mas também tira as minhas aspas "". Por favor me ajudem!

Obrigado!
Tags: Grails, JSON, parsing


0
Essa questão foi solucionada. Na verdade, não sei porque motivo, mas o meu segundo elemento do array estava vindo com mais colchetes do que o normal. Eu removi os colchetes e agora preciso descobrir os motivos para desenvolver uma solução definitiva. Obrigado a todos.
19/02/2020 09:39



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto