Я хочу преобразовать пользовательский объект в строку и сохранить в SharePreferences, что является моей конечной целью. Я пробовал строку ниже, которая терпит неудачу.Gson.toString() дает ошибку «IllegalArgumentException: несколько полей JSON с именем mPaint»
String matchString = gson.toJson(userMatches);
Logcat:
10-11 15:24:33.245: E/AndroidRuntime(21427): FATAL EXCEPTION: main
10-11 15:24:33.245: E/AndroidRuntime(21427): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=4001, result=-1, data=null}
to activity {com.objectlounge.ridesharebuddy/com.objectlounge.ridesharebuddy.activities.RS_CreateTripActivity}:
java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint
10-11 15:24:33.245: E/AndroidRuntime(21427): at android.app.ActivityThread.deliverResults(ActivityThread.java:3302)
Я пробовал много вариантов, и считаю, что что-то с переменными в пользовательском объекте. Ведение фокуса в журнале ошибок - java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint
. Не знаю, что такое mPaint.
У кого-нибудь есть идеи?
Вы можете поделиться своим кодом для генерации JsonObject? Как и в журнале, это указывает на то, что mPain объявляется несколько раз? –
Если я не ошибаюсь, gson.toJson преобразует его в объект json, вы можете преобразовать его в строку из jsonobj –
@DharaShah Нет. Он преобразуется в строку напрямую. – Geek