Bom dia pessoal!
Estou tentando converter um array de objetos do formato Json para Java utilizando a api Gson. Mas, ao executar, o objeto da classe que criei em Java, correspondente ao Json, fica com o valor null.
Abaixo esta o Json que recebo no form da minha action (estou usando Struts 1):
{ "feature" : [ { "attributes" : { "ENDERECO" : "4",
"ESCOLA" : "2",
"PREDIO" : "5",
"REDE" : "3",
"SIE" : "1",
"TIPO_DE_CO" : "6"
},
"geo" : { "coordinates" : [ 186234.8089722222,
1680260.8506833334
],
"srid" : 1010101,
"type" : "Point"
}
},
{ "attributes" : { "ENDERECO" : "10",
"ESCOLA" : "8",
"PREDIO" : "11",
"REDE" : "9",
"SIE" : "7",
"TIPO_DE_CO" : "12"
},
"geo" : { "coordinates" : [ 184463.97563888886,
1680777.343738889
],
"srid" : 1010101,
"type" : "Point"
}
}
] }
Na action eu faço:
Gson gson = new GsonBuilder().create();
VectorLayer vl = gson.fromJson(myForm.getVectorLayer(), VectorLayer.class);
Na classe VectorLayer eu tenho o array de objetos Feature que, por sua vez, contém o objeto Geometry:
public class VectorLayer {
private Feature[] features;
public void setFeatures(Feature[] features) {
this.features = features;
}
public Feature[] getFeatures() {
return features;
}
}
E nas classes Feature e Geometry eu declarei todos os atributos existentes no Json, com modificador private e os respectivos getters e setters!
O primeiro problema foi o citado lá em cima, não da erro, mas também a conversão não acontece!
Ainda vou ter um segundo problema, esses atributos da Feature (SIE,ESCOLA,etc) não serão sempre os mesmos, eles são dinâmicos, mudam conforme a geometria que eu selecionar no meu sistema para editar. Já que eu tenho que ter, na classe, os campos do Json, como eu faria isso? O Gson é mesmo uma boa solução para este caso?
Obrigada!