您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Java 中怎么將xml 和 json進行轉換,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
@JsonProperty:把屬性的名稱序列化成另一個名稱 @JsonFormat:日期格式轉換(例如:@JsonFormat(timezone=“GTM+8”,pattern=“yyyy-MM-dd HH:mm:ss”)) @JsonIgnoreProperties:忽略類的某個屬性(作用于類,例如:@JsonIgnoreProperties({“屬性1”,“屬性2”})) @JsonIgnore:忽略類的某個屬性(作用于屬性,直接在屬性加注解即可) @JacksonXmlElementWrapper:可用于指定List等集合類,外圍標簽名 @JacksonXmlProperty:指定包裝標簽名,或者指定標簽內部屬性名 @JacksonXmlRootElement:指定生成xml根標簽的名字 @JacksonXmlText:指定當前值,沒有xml標簽包裹 【tips】 在類中的部分屬性使用@JsonProperty和@JacksonXmlProperty注解時,生成的XML字符串標簽順序可能會發生改變
XmlMapper類的方法
實體類(任意類型)解析為xml的字符串 String writeValueAsString(Object var1); 把字符串轉換為實體類 <T> T readValue(String var1, Class<T> var2); 讀取xml字符串為json格式 JsonNode readTree(String var1);
JsonNode類的方法
獲取json中的某個節點值 JsonNode get(String var1);
//java項目www.fhadmin.org @Data public class Student { private String studentNo; private String studentName; }
【tips】
代碼中打印語句后的注釋為控制臺打印的結果
//java項目www.fhadmin.org public class Demo { //創建XmlMapper對象,用于實體與json和xml之間的相互轉換 private static final XmlMapper XML_MAPPER = new XmlMapper(); public static void main(String[] args) throws Exception { Student s = new Student(); s.setStudentNo("202101001"); s.setStudentName("張三"); //實體類解析為xml的字符串(理論上可以將任意類型解析為xml字符串) String xmlStr = XML_MAPPER.writeValueAsString(s); System.out.println(xmlStr);//<Student xmlns=""><studentNo>202101001</studentNo><studentName>張三</studentName></Student> //把字符串轉換為實體類 Student student = XML_MAPPER.readValue(xmlStr, Student.class); System.out.println(student);//Student(studentNo=202101001, studentName=張三) //讀取xml字符串為json格式 JsonNode jsonNode = XML_MAPPER.readTree(xmlStr); System.out.println(jsonNode);//{"studentNo":"202101001","studentName":"張三"} //獲取json中的某一個節點值 JsonNode studentNo = jsonNode.get("studentNo"); System.out.println(studentNo);//"202101001" } }
運行結果
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import lombok.Data; import java.util.List; /** * @java項目 www.fhadmin.org * @version V1.0 * @Title: * @Description: * @date 2021/1/10 21:40 */ @Data @JsonIgnoreProperties({"ignore"})//忽略類的某個屬性 public class Clazz { //把屬性的名稱序列化成另一個名稱 @JsonProperty("CLAZZNO") private String clazzNo; //指定包裝標簽名,或者指定標簽內部屬性名 @JacksonXmlProperty(localName = "CLAZZNAME") private String clazzName; //忽略類的某個屬性 @JsonIgnore private String ignore; private Teacher teacher; //指定外圍標簽名 @JacksonXmlElementWrapper(localName = "studentList") //指定標簽名 @JacksonXmlProperty(localName = "student") private List<Student> studentList; } @Data class Teacher { private String teacherName; private String teacherSex; } @Data class Student { private String studentNo; private String studentName; }
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import java.util.ArrayList; import java.util.List; /** * @java項目www.fhadmin.org * @version V1.0 * @Title: * @Description: * @date 2021/1/10 21:43 */ public class Demo { //創建XmlMapper對象,用于實體與json和xml之間的相互轉換 private static final XmlMapper XML_MAPPER = new XmlMapper(); public static void main(String[] args) throws Exception{ Clazz c = new Clazz(); c.setClazzNo("201802"); c.setClazzName("三年級2班"); c.setIgnore("這是被忽略的屬性"); Teacher t = new Teacher(); t.setTeacherName("宋老師"); t.setTeacherSex("男"); c.setTeacher(t); List<Student> students = new ArrayList<>(); Student s1 = new Student(); s1.setStudentNo("202101001"); s1.setStudentName("張三"); Student s2 = new Student(); s2.setStudentNo("202101002"); s2.setStudentName("李四"); students.add(s1); students.add(s2); c.setStudentList(students); //實體類解析為xml的字符串 String xmlStr = XML_MAPPER.writeValueAsString(c); System.out.println(xmlStr); //把某一類型的東西轉換為實體類 Clazz clazz = XML_MAPPER.readValue(xmlStr, Clazz.class); System.out.println(clazz); //取出Clazz類的studentList屬性并打印 List<Student> studentList = clazz.getStudentList(); System.out.println(studentList); //讀取xml字符串為json格式 JsonNode jsonNode = XML_MAPPER.readTree(xmlStr); System.out.print(jsonNode); } }
運行結果
<Clazz xmlns=""><teacher><teacherName>宋老師</teacherName><teacherSex>男</teacherSex></teacher><CLAZZNO>201802</CLAZZNO><CLAZZNAME>三年級2班</CLAZZNAME><studentList><student><studentNo>202101001</studentNo><studentName>張三</studentName></student><student><studentNo>202101002</studentNo><studentName>李四</studentName></student></studentList></Clazz> Clazz(clazzNo=201802, clazzName=三年級2班, ignore=null, teacher=Teacher(teacherName=宋老師, teacherSex=男), studentList=[Student(studentNo=202101001, studentName=張三), Student(studentNo=202101002, studentName=李四)]) [Student(studentNo=202101001, studentName=張三), Student(studentNo=202101002, studentName=李四)] {"teacher":{"teacherName":"宋老師","teacherSex":"男"},"CLAZZNO":"201802","CLAZZNAME":"三年級2班","studentList":{"student":{"studentNo":"202101002","studentName":"李四"}}}
看完上述內容,你們對Java 中怎么將xml 和 json進行轉換有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。