2
Cloud端點生成的對象中的長值用@JsonString註釋。使用GsonFactory反序列化這些對象時,會導致IllegalArgumentException。IllegalArgumentException:使用@JsonString批註反序列化生成的對象
這是堆棧跟蹤:
Caused by: java.lang.IllegalArgumentException: number type formatted as a JSON number cannot use @JsonString annotation [key updated, field private java.lang.Long com.google.api.services.timetable.model.Lesson.updated]
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:599)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:350)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:586)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:289)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:266)
at com.google.api.client.json.JsonFactory.fromString(JsonFactory.java:207)
示例代碼產生異常:
GsonFactory gsonFactory = new GsonFactory();
Lesson lesson = new Lesson();
lesson.setUpdated(2);
String json = gsonFactory.toString(lesson);
gsonFactory.fromString(json, Lesson.class);
原始discusssion https://groups.google.com/d/msg/endpoints-trusted-testers/-/_TKGoruZVt0J
我添加了如何生成異常的示例代碼。我在客戶端(Android)和服務器端都使用Java,因此不涉及Python。 – 2013-02-28 10:50:20
這實際上是我身邊的一個錯誤。重新生成端點類後,它的工作完美無瑕。我想我在將類更改回GenericJson(連接到Google Groups中的原始錯誤)時會搞砸了。 – 2013-02-28 21:42:39