我想使用Jacksonapi 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
序列化对象,代码如下:
WebSocketMsg resp = new WebSocketMsg(MsgType.USER_CHAT,responseMsg );
ObjectMapper objectMapper = new ObjectMapper();
String resultJson= objectMapper.writeValueAsString(resp);
现在序列化WebSocketMsg
enum using value,有没有可能使用enum名称来使其序列化?这是enum定义:
@Schema(implementation = MsgType.class)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MsgType {
HEARTBEAT(1, "heartbeat")
}
我尝试添加@JsonFormat(shape = JsonFormat.Shape.OBJECT)
,但仍然无法工作。这是WebSocketMsg
定义:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WebSocketMsg {
private MsgType msgType;
private String msg;
}
我想要的json可能看起来像:
{
msgType: "HEARTBEAT",
msg: "balabala....."
}
1条答案
按热度按时间a7qyws3x1#
如果你删除
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
,你会得到想要的格式:但是,如果你保留这个注解,enum将像一个对象一样显示。因此,结果json将是: