Jackson解析XML/JSONシーケンス化と逆シーケンス化(注記ベース)
3810 ワード
インポートするjarパッケージ
POJO類
シーケンス化/逆シーケンス化
com.fasterxml.jackson.core
jackson-core
2.8.11
com.fasterxml.jackson.core
jackson-databind
2.8.11
com.fasterxml.jackson.core
jackson-annotations
2.8.11
com.fasterxml.jackson.dataformat
jackson-dataformat-xml
2.8.11
POJO類
@JacksonXmlRootElement(localName = "xml")
public class BaseEvent {
@JacksonXmlProperty(localName = "ToUserName")
private String ToUserName;//
@JacksonXmlProperty(localName = "FromUserName")
private String FromUserName;// ( OpenID)
@JacksonXmlProperty(localName = "Content")
private String Content;
@JacksonXmlProperty(localName = "CreateTime")
private long CreateTime;// ( )
@JacksonXmlProperty(localName = "MsgType")
private String MsgType;// ,event
@JacksonXmlProperty(localName = "MsgId")
private String MsgId;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
public long getCreateTime() {
return CreateTime;
}
public void setCreateTime(long createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
public String getMsgId() {
return MsgId;
}
public void setMsgId(String msgId) {
MsgId = msgId;
}
@Override
public String toString() {
return "BaseEvent{" +
"ToUserName='" + ToUserName + '\'' +
", FromUserName='" + FromUserName + '\'' +
", Content='" + Content + '\'' +
", CreateTime=" + CreateTime +
", MsgType='" + MsgType + '\'' +
'}';
}
}
シーケンス化/逆シーケンス化
//
@RequestMapping(value = "/wx", method = RequestMethod.POST, produces = MediaType.APPLICATION_XML_VALUE)
@ResponseBody
public String messageService(HttpServletRequest request) throws IOException {
char[] buf = new char[1024];
int length;
StringBuilder builder = new StringBuilder();
InputStreamReader inputStreamReader = new InputStreamReader(request.getInputStream(), "utf-8");
while ((length = inputStreamReader.read(buf)) != -1) {
builder.append(new String(buf, 0, length));
}
inputStreamReader.close();
System.out.println(builder);
XmlMapper xmlMapper = new XmlMapper();
// pojo
xmlMapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES,true);
BaseEvent baseEvent = xmlMapper.readValue(builder.toString(),BaseEvent.class);
System.out.println(baseEvent);
return "";
}