【发布时间】:2021-09-07 06:31:21
【问题描述】:
在用Gson序列化消息类的builder创建的对象时,想得到键名android。
我认为@Key 应该得到 android,而不是 androidConfig,作为序列化的结果,但事实并非如此。 Objectmapper 和 Gson 也是如此。
我的开发环境是 Spring Boot 2.3.12.RELEASE、Firebase ADMIN SDK 8.0.1.、Gson 2.8.8
[source]
message = Message.builder()
.setNotification(Notification.builder()
.setTitle(pushMessageDto.getTitle())
.setBody(pushMessageDto.getBody())
.setImage(pushMessageDto.getImage())
.build())
.setAndroidConfig(AndroidConfig.builder()
.setTtl(3600 * 1000)
.setNotification(AndroidNotification.builder()
.setIcon(ar.getIcon())
.setColor(ar.getColor())
.setClickAction(ar.getClickAction())
.build())
.build())
.setTopic(pushMessageDto.getTopic())
.build();
Gson gson = new Gson();
String m = gson.toJson(message);
[serializing results]
{
"validate_only":false,
"message":{
"notification":{
"title":"a",
"body":"b",
"image":"c"
},
"androidConfig":{
"ttl":"3",
"notification":{
"icon":"",
"color":"#32a852",
"clickAction":"MainActivity",
}
},
"topic":"weather"
}
}
[Message class of Firebase Admin SDK]
public class Message {
@Key("data")
private final Map<String, String> data;
@Key("notification")
private final Notification notification;
@Key("android")
private final AndroidConfig androidConfig;
@Key("webpush")
private final WebpushConfig webpushConfig;
@Key("apns")
private final ApnsConfig apnsConfig;
@Key("token")
private final String token;
@Key("topic")
private final String topic;
@Key("condition")
private final String condition;
@Key("fcm_options")
private final FcmOptions fcmOptions;
【问题讨论】:
标签: java firebase firebase-cloud-messaging gson message