与腾讯即时通讯IM对接、腾讯的请求格式如下:

 于是我在项目后端编写了一个实体类用来接收参数

@Data
public class ChatRoomDto implements Serializable {
    /**
     * 回调命令
     */
    private String CallbackCommand;
    /**
     * 群组号
     */
    private String GroupId;
    /**
     * 群组类型
     */
    private String Type;
    /**
     * 入群方式:Apply(申请入群);Invited(邀请入群)
     */
    private String JoinType;
    /**
     *操作者成员
     */
    private String Operator_Account;
    /**
     * 新入群成员列表
     */
    private List<NewMember> NewMemberList;

    /**
     * 毫秒级别,事件触发时间戳
     */
    private String EventTime;

    @Data
    class NewMember{
        private String Member_Account;
    }
}

Controller代码如下:

 当我用apifox调试时 发现接收的参数居然全部为null 请求的JSON数据如下:

当我debug时 接收到的参数:

 当时检查了字段是否对应、注解之类的问题 发现都没有漏的地方 翻阅资料后将实体类改成如下 则解决了这个问题 (其实可以通过map或者JSONObject接收参数、但是我觉得实体比这些方便一点 所以就一直搜了一下解决办法

通过@JsonProperty注解来解决问题  如果引用了内部类的话需要把内部类改成静态内部类,内部非静态类无法实例化

@Data
public class ChatRoomDto implements Serializable {
    /**
     * 回调命令
     */
    @JsonProperty(value = "CallbackCommand")
    private String callbackCommand;
    /**
     * 群组号
     */
    @JsonProperty(value = "GroupId")
    private String groupId;
    /**
     * 群组类型
     */
    @JsonProperty(value = "Type")
    private String type;
    /**
     * 入群方式:Apply(申请入群);Invited(邀请入群)
     */
    @JsonProperty(value = "JoinType")
    private String joinType;
    /**
     *操作者成员
     */
    @JsonProperty(value = "Operator_Account")
    private String operator_Account;
    /**
     * 新入群成员列表
     */
    @JsonProperty(value = "NewMemberList")
    private List<NewMember> newMemberList;

    /**
     * 毫秒级别,事件触发时间戳
     */
    @JsonProperty(value = "EventTime")
    private String eventTime;

    @Data
    static class NewMember{
        @JsonProperty(value = "Member_Account")
        private String member_Account;
    }
}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐