我尝试将json转换为对象,但对象总是空的,我认为我对对象的定义有些不对,但我不太确定,我试图转换的json是:
{
"cotizador": {
"pagos": [{
"monto": 163.83,
"montoTotal": 678.52,
"primerMonto": 187.03,
"plazo": 4
}, {
"monto": 122.17,
"montoTotal": 756.22,
"primerMonto": 145.37,
"plazo": 6
}],
"mensaje": {
"codigo": 0,
"descripcion": "Consulta Exitosa."
}
}
}
我的主要方法是
String urlWS = "The url that return the json above";
URL url= new URL(urlWS);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/json");
connection.setReadTimeout(30000);
JsonParser jp = new JsonParser();
JsonElement jsonElement = jp.parse(new InputStreamReader((InputStream) connection.getContent()));
Gson gsonOut = new Gson();
Cotizador cotizador=gsonOut.fromJson(jsonElement.getAsJsonObject().get("cotizador"), Cotizador.class);
cotizador 对象始终为空
这是我的对象:
@XmlRootElement(name="cotizador")
public class Cotizador {
private Mensaje objMensaje;
private List<Pago> lstPagos;
public Cotizador() {
this.objMensaje = new Mensaje();
this.lstPagos = new ArrayList<Pago>();
}
@XmlElement(name="mensaje")
public Mensaje getObjMensaje() {
return objMensaje;
}
public void setObjMensaje(Mensaje objMensaje) {
this.objMensaje = objMensaje;
}
@XmlElement(name="pagos")
public List<Pago> getLstPagos() {
return lstPagos;
}
public void setLstPagos(List<Pago> lstPagos) {
this.lstPagos = lstPagos;
}
}
@XmlRootElement(name="mensaje")
public class Mensaje {
private String strDescripcion;
private int intCodigo;
public Mensaje() {
this.strDescripcion="";
this.intCodigo=0;
}
@XmlElement(name="descripcion")
public String getStrDescripcion() {
return strDescripcion;
}
public void setStrDescripcion(String strDescripcion) {
this.strDescripcion = strDescripcion;
}
@XmlElement(name="codigo")
public int getIntCodigo() {
return intCodigo;
}
public void setIntCodigo(int intCodigo) {
this.intCodigo = intCodigo;
}
}
@XmlRootElement(name="pago")
public class Pago {
private int intPlazo;
private double dblMonto;
private double dblPrimerMonto;
private double dblMontoTotal;
public Pago() {
this.intPlazo = 0;
this.dblMonto = 0;
this.dblPrimerMonto = 0;
this.dblMontoTotal = 0;
}
@XmlElement(name="plazo")
public int getIntPlazo() {
return intPlazo;
}
public void setIntPlazo(int intPlazo) {
this.intPlazo = intPlazo;
}
@XmlElement(name="monto")
public double getDblMonto() {
return dblMonto;
}
public void setDblMonto(double dblMonto) {
this.dblMonto = dblMonto;
}
public double getDblPrimerMonto() {
return dblPrimerMonto;
}
@XmlElement(name="primerMonto")
public void setDblPrimerMonto(double dblPrimerMonto) {
this.dblPrimerMonto = dblPrimerMonto;
}
@XmlElement(name="montoTotal")
public double getDblMontoTotal() {
return dblMontoTotal;
}
public void setDblMontoTotal(double dblMontoTotal) {
this.dblMontoTotal = dblMontoTotal;
}
}
有人知道我做错了吗?
提前致谢