java xml和对象bean 互转
来源:互联网 发布:品茗安全软件 编辑:程序博客网 时间:2024/05/22 15:25
修改别人的。
package cn.wjj;
public class ClassRoom {
private int id;
private String name;
private int grade;
private String messageId;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public ClassRoom(int id, String name, int grade,String messageId) {
super();
this.id = id;
this.name = name;
this.grade = grade;
this.messageId=messageId;
}
//无参够着函数一定需要,否则JXBContext无法正常解析。
public ClassRoom() {
super();
}
public String getMessageId() {
return messageId;
}
public void setMessageId(String messageId) {
this.messageId = messageId;
}
}
package cn.wjj;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private int id;
private String name;
private int age;
private String school;
private ClassRoom classRoom;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public ClassRoom getClassroom() {
return classRoom;
}
public void setClassroom(ClassRoom classroom) {
this.classRoom = classroom;
}
public Student(int id, String name, int age, ClassRoom classroom,String school) {
super();
this.id = id;
this.name = name;
this.age = age;
this.classRoom = classroom;
this.school=school;
}
//无参够着函数一定需要,否则JXBContext无法正常解析。
public Student() {
super();
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
package cn.wjj;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.*;
public class XmlUtil {
public static String toXML(Object obj) {
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// //编码格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public static <T> T fromXML(String xml, Class<T> valueType) {
try {
JAXBContext context = JAXBContext.newInstance(valueType);
Unmarshaller unmarshaller = context.createUnmarshaller();
return (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}
package cn.wjj;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
ClassRoom classroom = new ClassRoom(1, "软件工程", 4,"010");
Student student = new Student(101, "张三", 22, classroom, "1");
String s=XmlUtil.toXML(student);
System.out.println(s);
// String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><student><age>25</age><classroom><grade>5</grade><id>1</id>"
// + "<name>软件工程2</name></classroom><id>102</id><name>李四</name></student>";
Student stu2=XmlUtil.fromXML(s, Student.class);
System.out.println(stu2.getAge());
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
<age>22</age>
<classroom>
<grade>4</grade>
<id>1</id>
<messageId>010</messageId>
<name>软件工程</name>
</classroom>
<id>101</id>
<name>张三</name>
<school>1</school>
</student>
22
- java xml和对象bean 互转
- JAXB: JAVA Bean 和 XMl互转
- Excel转XML,和生成bean对象
- java对象和xml互转
- java对象和xml互转
- java对象和xml互转
- bean 对象转 XML
- 怎样转换XML和Java Bean
- java bean和xml相互转换
- java bean和xml相互转换
- java对象和xml,java对象和json互转
- java和xml相互转换,java bean转xml文件
- 使用XmlPullParser把xml文件转换成java bean对象
- java 用 jackson 进行 xml bean 互转
- java bean 转xml
- bean的xml对象编写
- Java对象和XML转换
- xml和java Bean的直接转换,Xmap
- RHEL 5.5源码编译go编译器出错解决
- ios 搞轮播广告的超爽控件
- OCX控件打包成CAB
- 2015年什么最贵
- 停止 OGG
- java xml和对象bean 互转
- [算法系列之八]大数问题(高精度运算)
- 复位最佳方式:异步复位,同步释放
- Android的系统自带的文字外观设置及实际显示效果图
- http接口和webservice接口的区别
- 7z rar zip之间的区别
- linux传送文件至服务器
- Java中的成员变量和局部变量
- 从Cocoa Touch转向Cocos2d-x,从Objective-C转向 C++