我有:
public class RequisicionImpresion {
private List<Files> archivos;
private String impresora;
... // getter & setters
}
public class FileDto {
private String lote;
private Long idDoc;
private String nombre;
private String ruta;
//Getter & setters
}
我正在获得JSON:
{"archivos":[{"lote":"JULIO_20160125_001","idDoc":9038,"nombre":"/siat/anexo/pruebas/Anexo 1.pdf","ruta":"/siat/anexo/pruebas/Anexo 1.pdf"},
{"lote":"JULIO_20160125_001","idDoc":9185,"nombre":"/siat/anexo/pruebas/Anexo 1.pdf","ruta":"/siat/anexo/pruebas/Anexo 1.pdf"},
{"lote":"JULIO_20160125_001","idDoc":9184,"nombre":"/siat/anexo/pruebas/Anexo 1.pdf","ruta":"/siat/anexo/pruebas/Anexo 1.pdf"},
{"lote":"JULIO_20160125_001","idDoc":9039,"nombre":"/siat/anexo/pruebas/Anexo 1.pdf","ruta":"/siat/anexo/pruebas/Anexo 1.pdf"}],
"impresora":"00000061677"}
我需要序列化来获取具有填充值的对象RequisionImpresion。我不知道如何导航元素'archivos'并获得其他元素。
我已经完成了:
nuevaRequsicionImpresion = jsonUtil.convertJsonToObject(json);
其中:
JsonUtil.java
...
public final T convertJsonToObject(final String json) {
T valor = null;
if (json != null) {
Gson gson = new Gson();
valor = (T) gson.fromJson(json, new TypeToken<T>() {
} .getType());
}
return valor;
}
...
但是我得到了例外:
java.lang.ClassCastException:com.google.gson.internal.StringMap无法强制转换为java.io.Serializable
答案 0 :(得分:0)
在我的实用程序类JsonUtil中,我已经更新了方法:
...
@SuppressWarnings("unchecked")
public final T convertJsonToObject(final String json, final T clase) {
T valor = null;
if (json != null) {
Gson gson = new Gson();
valor = (T) gson.fromJson(json, clase.getClass());
}
return valor;
}
...