我想將一些JSON轉換爲android中的java對象,但它似乎不工作。Android中的Java對象的JSON不與GSON一起工作
Gson gson = new Gson();
Person person = gson.fromJson(s, Person.class);
Toast toast = Toast.makeText(getApplicationContext(), "Welcome back " + person.getDisplayName(), duration);
toast.show();
哪裏Person.class是
com.google.api.services.plus.model.Person
我收到的類型轉換錯誤,如:
wrong object type: Ljava/lang/Double; Ljava/lang/Integer;
java.lang.IllegalArgumentException: invalid value for field
但我想重新使用API庫這個模型對象,所以是無論如何要解決這個問題?
編輯:
爲了證明在一個更簡單的形式這個問題,請參考本示例。
com.google.api.services.plus.model.Person;
Gson g = new Gson();
Person p1 = new Person();
p1.setDisplayName("Test");
p1.setCircledByCount(10);
String json = g.toJson(p1);
Person fromJson = g.fromJson(json, Person.class);
System.out.println(fromJson.getDisplayName());
引發相同的異常。
Exception in thread "main" java.lang.IllegalArgumentException: Can not set java.lang.Integer field com.google.api.services.plus.model.Person.circledByCount to java.lang.Double
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
我做錯了什麼? 感謝
發佈你的模型類和json – user2450263
坦率地說,你不應該使用該類的GSON。它不適用於GSON。它有自己的內置邏輯,用於將自身序列化爲JSON,並且它是處理反序列化的一部分的庫。 –