【发布时间】:2013-06-15 08:45:27
【问题描述】:
我有一个 GAE/J 服务器,它通过端点与我的 Android 客户端通信。
有时我会通过 GCM 向客户端发送一个实例,而不是让客户端通过端点请求它。在这种情况下,我需要自己进行 JSON 序列化/反序列化,而不是让端点为我做这件事。
这在客户端上尤其混乱。我想反序列化到由端点生成的类中,这样我就可以使用相同的代码来处理新数据,而不管我是通过端点还是通过 GCM 接收到的。
我认为一种解决方案是将代码添加到客户端上生成的类(例如从生成的类继承),但我发现该类是最终的并且所有成员都是私有的,因此使用它很尴尬。 我不认为我可以在注释中设置任何内容来改变这一点?
另一种解决方案是使用 Google java 客户端库反序列化到生成的类中,就像端点一样。不幸的是,在我看来,该库同样不灵活:我必须将 GCM 数据放入 HttpResponse 对象中,以便调用 HttpResponse.parseAs(MyGeneratedClass.class)。
有没有办法利用 Java 客户端库的 JSON 反序列化代码(以便反序列化为具有 @Key 注释的生成类),它与 HTTP 请求/响应代码更加分离?
【问题讨论】:
-
我在这里创建了一个相关请求:code.google.com/p/google-plugin-for-eclipse/issues/…
-
您是否反对通过 GCM 发送的消息是通知有对象准备好通过应用程序请求?
-
@DanHolevoet 是的,我可以这样做,但现在 GCM 接受有效负载(假设我的数据小于 4K 有效负载大小限制)似乎很浪费。
标签: android json google-api-java-client google-cloud-endpoints