使用Gson解析Json对Java对象的响应

时间:2015-08-22 11:20:06

标签: java android gson ormlite pojo

我有一个问题要将这个json结构解析为相应的java对象:

[
{
preciosArtPK: {
                 codLista: 1,
                 codArticulo: 11348,
                 cansiVenta: 1,
                 fecVigencia: 1435781252000
               },
siglaVenta: "UN",
precioVenta: 0,
margenPct: 100,
codUsuario: 1,
vigente: "S",
nomModulo: "MIGRACION"
},
{
preciosArtPK: {
                 codLista: 1,
                 codArticulo: 15799,
                 cansiVenta: 1,
                 fecVigencia: 1435781252000
              },
siglaVenta: "UN",
precioVenta: 0,
margenPct: 100,
codUsuario: 1,
vigente: "S",
nomModulo: "MIGRACION"
}
]

我正在尝试将这些数据插入表中,然后使用Gson对其进行反序列化,并使用ORMLite进行插入过程。所以,我对象的组件没有问题,但我内部的对象不能(preciosArtPK:codLista,codArticulo,cansiVenta,fecVigencia)。我怎样才能管理这种json响应以便轻松地插入过程?

在POJO之后反序化:

private List<PreciosArtPK> preciosArtPKList;

@DatabaseField(id = true, unique = true, columnName = PRECIOS_COD_LISTA)
private Integer codLista;

@DatabaseField(unique = true, columnName = PRECIOS_COD_ARTICULO)
private Integer codArticulo;

@DatabaseField(unique = true, columnName = PRECIOS_CANSI_VENTA)
private Integer cansiVenta;

@DatabaseField(unique = true, columnName = PRECIOS_FEC_VIGENCIA)
private Long fecVigencia;

@DatabaseField(columnName = PRECIOS_SIGLA_VENTA)
@SerializedName("siglaVenta")
private String siglaVenta;

@DatabaseField(columnName = PRECIOS_PRECIO_VENTA)
@SerializedName("precioVenta")
private Double precioVenta;

@DatabaseField(columnName = PRECIOS_MARGEN_PCT)
@SerializedName("margenPct")
private Float margenPct;

@DatabaseField(columnName = PRECIOS_COD_USUARIO)
@SerializedName("codUsuario")
private Integer codUsuario;

@DatabaseField(columnName = PRECIOS_VIGENTE)
@SerializedName("vigente")
private String vigente;

@DatabaseField(columnName = PRECIOS_NOM_MODULO)
@SerializedName("nomModulo")
private String nomModulo;

任何想法如何处理?我在“preciosArtPK”中的每个PK字段中都有“null”响应。 @serializeName上面的符号是ORMLite的东西。如果你能帮助我,我会非常感激!提前致谢。

像往常一样礼貌,

安迪

1 个答案:

答案 0 :(得分:0)

好的家伙,因为我在这里没有任何回复,我有义务通过解决这个问题来解决这个问题。实际上,它非常简单,就是在类中包含一个内部对象的实例,这是:我有 preciosArt.java

public class preciosArt
{

@SerializedName("preciosArtPK")
private PreciosArtPK preciosArtPK;

@SerializedName("siglaVenta")
private String siglaVenta;

@SerializedName("precioVenta")
private Double precioVenta;

@SerializedName("margenPct")
private Float margenPct;

@SerializedName("codUsuario")
private Integer codUsuario;

@SerializedName("vigente")
private String vigente;

@SerializedName("nomModulo")
private String nomModulo;

}

只是要包含内部对象类,让gson完成工作。希望这有帮助,我会在这里提出任何问题!

像往常一样礼貌,

安迪