目标:从使用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通知消息,我也很乐意听到。
答案 0 :(得分:0)
如果您需要:
{"id":"5658091668373504",...
你应该将Long改为String
@JsonString private String id;
创建Object时,可以使用UUID Random自动生成id;