私做政府网站什么罪安卓优化大师旧版本下载
报文转换
- 🍓JSON
- 🍒🍒JSON多字段映射成一个实体对象
- 🍒🍒JSON反序列化为一个带有泛型的JAVA类型
- 🍓xml
🍓JSON
🍒🍒JSON多字段映射成一个实体对象
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version>
</dependency>
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;@Data
public class PersonDto {//name:序列化和反序列化参照的字段//alternateNames:序列化参照字段@JSONField(name = "id", alternateNames={"st_id"})private String id;@JSONField(name = "name", alternateNames = {"st_name"})private String name;@JSONField(name = "age", alternateNames = {"st_age"})private Integer age;@JSONField(name = "sex", alternateNames = {"st_sex"})private String sex;//format:序列化参照字段@JSONField(name = "birthDate", alternateNames = {"st_birthDate"}, format = "yyyy-MM-dd")private Date birthDate;
}
🍒🍒JSON反序列化为一个带有泛型的JAVA类型
Response<Student> response = JSON.parseObject(jsonStr, new TypeReference<Response<Student>>());
🍓xml
<dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.12.4</version>
</dependency>
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;
import java.util.List;@Data
@JacksonXmlRootElement(localName = "Document")
public class PersonDto {@JacksonXmlProperty(localName = "id")private String id;@JacksonXmlProperty(localName = "name")private String name;@JacksonXmlProperty(localName = "age")private Integer age;@JacksonXmlProperty(localName = "sex")private String sex;@JacksonXmlProperty(localName = "birthDate")private String birthDate;@JacksonXmlProperty(localName = "hobby")//数组节点注意:如果不带此注解,则会导致hobby节点嵌套@JacksonXmlElementWrapper(useWrapping = false)private List<HobbyDto> hobbyDtos;@JacksonXmlProperty(localName = "friend")private FriendDto friendDto;
}
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;@Data
@JacksonXmlRootElement(localName = "hobby")
public class HobbyDto {@JacksonXmlProperty(localName = "name")private String name;
}
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;@Data
@JacksonXmlRootElement(localName = "friend")
public class FriendDto {//isAttribute默认是false,表示该属性是一个标签节点,如果设置成true,表示该属性时当前类属性的一个属性节点@JacksonXmlProperty(localName = "name", isAttribute = true)private String name;@JacksonXmlProperty(localName = "age", isAttribute = true)private String age;
}
数组嵌套形式:
正确的xml
格式:
<hobby><name>篮球</name>
</hobby>
<hobby><name>足球</name>
</hobby>
嵌套后:
<hobby><hobby><name>篮球</name></hobby><hobby><name>足球</name></hobby>
</hobby>
xml
转换:
import com.fasterxml.jackson.dataformat.xml.XmlMapper;XmlMapper xmlMapper = new XmlMapper();//xml字符串转对象PersonDto personDto = xmlMapper.readValue(xmlStr, PersonDto.class);//xml对象转xml字符串String xmlStr = xmlMapper.writeValueAsString(personDto);