У меня проблема с преобразованием объекта bandClient в JSON (я хочу сохранить объект для последующего использования в SHARED PREFS (ANDROID)).
Я пытался сделать это с помощью GSON, но во время выполнения
String json = gson.toJson(bandClient);
Я всегда получаю следующее исключение:
Процесс: xxr.com.mitracker, PID: 19040 java.lang.StackOverflowError на com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:380) на com.google.gson.internal. $Gson$Types.resolve($Gson$Types.java:375) на com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:380) на com.google.gson.internal. $Gson$Types.resolve($Gson$Types.java:375) на com.google.gson.internal.$Gson$Types. решить ($Gson$Types.java:380)
Как я могу решить это правильно, пожалуйста?
Большое спасибо за любой совет
Код метода:
private AdapterView.OnItemClickListener onListItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
BandInfo[] pairedBands =
BandClientManager.getInstance().getPairedBands();
Logger.d("Clicked on item " + position);
final BandClient bandClient =
BandClientManager.getInstance().create(context, pairedBands[position]);
//mBandList.get(position).getBandClient();
MsBandHelperAssync asyncTask = new MsBandHelperAssync(new AsyncResponse() {
@Override
public void processFinish(Boolean output) {
try {
Logger.d("RETURNED " + output);
Gson gson = new Gson();
Logger.d("PLAIN OBJECT" + bandClient);
gson.toJsonTree(bandClient);
Logger.d("PASSED");
String json = gson.toJson(bandClient);
Logger.d("PASSED JSON" + json);
//Prefs.putString(Constants.Global.SHARED_PREFS_KEY_PAIRED_DEVICES, json);
Logger.d("Saved");
//CommonHelper.redirectToActivity(context, mActivity, DashboardActivity.class);
} catch (Exception e) {
Logger.e(e.getMessage());
}
}
});
asyncTask.execute(bandClient);