GSON 流 Gson - streaming 在我的项目中可行,但我必须说它需要一定的时间,例如 68K 行,每行有 10 列,大约需要 4 分钟。不过无论如何,它解决了我的问题。所以我现在拥有这个 JSON 响应:
- preciosArtPK: {
codLista: 1,
codArticulo: 11348,
cansiVenta: 1,
fecVigencia: 1435781252000
},
siglaVenta: "UN",
precioVenta: 0,
margenPct: 100,
codUsuario: 1,
vigente: "S",
nomModulo: "MIGRACION"
上面的 JSON 是数组响应的一部分,但我有那些 "preciosArtPK" 要包含在使用 gson 进行序列化中。我该怎么做?我有处理我的序列化的类:
@DatabaseTable(tableName = "preciosart")
public class PreciosArt {
public static final String PRECIOS_COD_LISTA = "_id";
public static final String PRECIOS_COD_ARTICULO = "cod_articulo";
public static final String PRECIOS_CANSI_VENTA = "cansi_venta";
public static final String PRECIOS_FEC_VIGENCIA = "fec_vigencia";
public static final String PRECIOS_SIGLA_VENTA = "sigla_venta";
public static final String PRECIOS_PRECIO_VENTA = "precio_venta";
public static final String PRECIOS_MARGEN_PCT = "margen_pct";
public static final String PRECIOS_COD_USUARIO = "cod_usuario";
public static final String PRECIOS_VIGENTE = "vigente";
public static final String PRECIOS_NOM_MODULO = "nom_modulo";
@DatabaseField(id = true, unique = true, columnName = PRECIOS_COD_LISTA)
private Integer codLista;
@DatabaseField(unique = true, columnName = PRECIOS_COD_ARTICULO)
@SerializedName("codArticulo")
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;
但是这并没有填充那些字段(codArticulo、cansiVenta 和 fecVigencia)。我阅读了关于反序列化这些 JSON 格式的文章,制作了另一个类:
@SerializedName("codLista")
private Integer codLista;
@SerializedName("codArticulo")
private Integer codArticulo;
@SerializedName("cansiVenta")
private Integer cansiVenta;
@SerializedName("fecVigencia")
private Long fecVigencia;
问题是:我如何使用我的JSON反序列化填充这些字段?我使用OMRLite来完成这项工作,这个类就是为此而设计的:
public long updatePreciosart(PreciosArt preciosArt){
long resultUpdate = -1;
try {
getHelper().getPreciosartDao().createOrUpdate(preciosArt);
resultUpdate = 0;
} catch (SQLException e) {
e.printStackTrace();
resultUpdate = -1;
}
return resultUpdate;
}
希望你能理解问题所在,并希望你能帮助我解决它!再次感谢!