我正在尝试将Java类转换为JSONObject,它可以工作,但有一点问题。当我将一个arraylist对象放入一个JSONObject时,它将它保存在引号中。
这对我来说是一个问题,因为当我尝试进行反序列化时,它会检测到它是一个字符串而不是一个数组。
这是我从json api收到数据的类:
public class IndicadorEconomico {
@SerializedName("version")
private String version;
@SerializedName("autor")
private String autor;
@SerializedName("codigo")
private String codigo;
@SerializedName("nombre")
private String nombre;
@SerializedName("unidad_medida")
private String unidad_medida;
@SerializedName("serie")
private ArrayList<Object> serie;
private static final String JSON_VERSION = "version";
private static final String JSON_AUTOR = "autor";
private static final String JSON_CODIGO = "codigo";
private static final String JSON_NOMBRE = "nombre";
private static final String JSON_UNIDAD_MEDIDA = "unidad_medida";
private static final String JSON_SERIE = "serie";
public JSONObject convertToJSON() throws JSONException {
JSONObject jo = new JSONObject();
jo.put(JSON_VERSION, version);
jo.put(JSON_AUTOR, autor);
jo.put(JSON_CODIGO, codigo);
jo.put(JSON_NOMBRE, nombre);
jo.put(JSON_UNIDAD_MEDIDA, unidad_medida);
jo.put(JSON_SERIE, serie);
Log.e("info", "" + jo.toString());
return jo;
}
}
这是我进行序列化过程的JSONSerializer类:
public class JSONSerializer
{
private static final String TAG = JSONSerializer.class.getSimpleName();
private String mFilename;
private Context mContext;
public JSONSerializer(String fn, Context con) {
this.mFilename = fn;
this.mContext = con;
}
public void save(IndicadorEconomico indicadorEconomico) throws IOException, JSONException {
Writer writer = null;
try {
OutputStream out = mContext.openFileOutput(mFilename, mContext.MODE_PRIVATE);
writer = new OutputStreamWriter(out);
writer.write(indicadorEconomico.convertToJSON().toString());
} finally {
if (writer != null) {
writer.close();
}
}
}
}