使用@JsonString注释在Google Endpoint中生成JSON

时间:2016-10-18 21:54:31

标签: java android json google-app-engine google-cloud-endpoints

目标:从使用Google端点内的@JsonString注释的Java对象生成JSON字符串。

策略:

public class MyBean {
    @JsonString private Long id;
...

String practicaJson = new Gson.toJson(myBean);

预期结果:

{"id":"5658091668373504",...

实际结果:

{"id":5658091668373504,...

上下文: 我有一个Android应用和一个Google云端点。 bean通过端点http接口从端点发送到Android客户端。现在,我正试图通过Firebase通知发送bean。所以,我需要生成自己的json字符串。

诀窍是我的Google端点模块中的bean是我写的普通Java类。 Android客户端从Google端点库接收该bean的生成版本。生成的bean具有@JsonString注释。 (由于我不关心的JavaScript兼容性问题,Google端点库会这样做。)

因此,使用端点side bean生成的json与Android客户端中的bean不兼容。一个简单的解决方案似乎是简单地将@JsonString注释添加到我的终点bean。虽然,Gson似乎忽略了@JsonString注释。

欢迎任何有关解决JSON生成问题的提示。如果有更聪明的方法通过HTTP传输有时发送相同的bean / pojo,有时通过Firebase通知消息,我也很乐意听到。

1 个答案:

答案 0 :(得分:0)

如果您需要:

 {"id":"5658091668373504",...

你应该将Long改为String

 @JsonString private String id;

创建Object时,可以使用UUID Random自动生成id;