Ich habe ein Problem, BandClient-Objekt in JSON zu konvertieren (ich möchte Objekt für die spätere Verwendung im SHARED PREFS (ANDROID) speichern).Wie konvertiert man Objekte in GSON (JSON) auf die richtige Weise?
Ich habe versucht, es zu tun, indem Gson verwenden, aber während der Ausführung
String json = gson.toJson(bandClient);
Ich bekomme immer folgende Ausnahme:
Prozess: xxr.com.mitracker, PID: 19040 java.lang.StackOverflowError bei com.google.gson.internal $ Gson $ Types.resolve ($ Gson $ Types.java: 380). bei com.google.gson.internal $ Gson $ Types.resolve ($ Gson $ Types.java.: 375) bei com.google.gso . N.internal $ Gson $ Types.resolve ($ Gson $ Types.java: 380) bei com.google.gson.internal $ Gson $ Types.resolve. ($ Gson $ Types.java: 375) bei com. . google.gson.internal $ Gson $ Types.resolve ($ Gson $ Types.java: 380)
Wie kann ich es in der richtigen Art und Weise zu lösen bitte?
Vielen Dank für jede Beratung
Methode Code:
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);
Sie erhalten eine Stackoverflow, weil Sie in einer unendlichen rekursiven Schleife stecken. – chRyNaN
Könnten Sie mir bitte sagen wo? – redrom