前言:对于服务器后端开发,接口返回的数据格式一般要求都是json,但是也有使用xml格式

RequestBody注解
对于SpringMVC,很多人会认为接口方法使用@Controller搭配@ResponseBody和@RequestMapping注解后,java对象会转换成json格式返回。
但实际上配合@ResponseBody注解后,接口返回的数据类型是根据HTTP Request Header中的Accept属性来确定的,可以是XML或者JSON数据
通过适当的HttpMessageConverter对java对象进行格式转换,常用的有:
ByteArrayHttpMessageConverter
负责读取二进制格式的数据和写出二进制格式的数据;
StringHttpMessageConverter
负责读取字符串格式的数据和写出二进制格式的数据;
ResourceHttpMessageConverter
负责读取资源文件和写出资源文件数据;
FormHttpMessageConverter
负责读取form提交的数据;
MappingJacksonHttpMessageConverter
负责读取和写入json格式的数据;
SouceHttpMessageConverter
负责读取和写入 xml 中javax.xml.transform.Source定义的数据;
Jaxb2RootElementHttpMessageConverter
负责读取和写入xml 标签格式的数据;
AtomFeedHttpMessageConverter
负责读取和写入Atom格式的数据;
RssChannelHttpMessageConverter
负责读取和写入RSS格式的数据
具体使用哪个怎么判断这里就不细讲了,我们关心的是Jaxb2RootElementHttpMessageConverter这个方法,后面会讲为啥会提
java对象与xml之间互相转换
使用Java自带注解的方式实现(@XmlRootElement,@XmlAccessorType,@XmlElement,@XmlAttribute),具体使用方法网上有很多
这里直接代码举例
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "city")
@XmlType(propOrder = { "name","province"})
public class City {
private String name;
private String province;
public City() {
}
public City(String name, String province) {
this.name = name;
this.province = province;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public String getProvince() {
return province;
}
@XmlElement
public void setProvince(String province) {
this.province = province;
}
}
分享题目:Javaxml数据格式返回实现操作-创新互联
分享URL:http://www.jxjierui.cn/article/djopog.html


咨询
建站咨询
