文档章节

XML格式文本 与 JavaBean 相互转换

非著名程序员Bla
 非著名程序员Bla
发布于 2016/05/18 18:04
字数 349
阅读 6
收藏 0

首先我封装了两个方法,XML—->JavaBean 和 JavaBean—->XML 之间的转换:

    /** * 将 对象 转换成 xml * @param clazz 目标类 * @throws Exception 异常 */ 
     public static void ObjectToXML(Object obj) throws Exception{
         JAXBContext ctx = JAXBContext.newInstance(obj.getClass());//动态判定类型
         Marshaller marchaller = ctx.createMarshaller();  
         marchaller.marshal(obj, System.out);
     }

     /** * 将 xml 转换成 对象 * @param obj 目标类型 * @param xmlStr xml字符串 * @throws Exception 异常 */
     public static Object XMLToObject(Object obj,String xmlStr) throws Exception{
         JAXBContext context = JAXBContext.newInstance(obj.getClass());  
         Unmarshaller unmarshaller = context.createUnmarshaller();  
         Object object = unmarshaller.unmarshal(new StringReader(xmlStr));
         return object;
     }

测试程序:

 public static void main(String[] args) throws Exception {
         Student stu = new Student();
         stu.setStuName("Bla");
         stu.setScore(79);
         stu.setAge("20");
         stu.setDate(new Date());
         //对象转换成xml
         ObjectToXML(stu); 
         //将 xml 装换成 对象
         String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>20</age><date>2015-12-07T19:49:52.236+08:00</date><score>79</score><stuName>Bla</stuName></student>";
         System.out.println("将 xml 装换成 对象  \n");
         Object xmlToObject = XMLToObject(new Student(), xmlStr);
         String studentInfo = ((Student)xmlToObject).toString();
         System.out.println(studentInfo);
     }

测试程序需要的实体类:
注意:使用Java自带的转换有一点不好,就是实体类前面需要加 @XmlRootElement 注解

@XmlRootElement
public class Student {
    private String stuName;
    private String age;
    private Date date;
    private int score;

    public Student() {
        super();
    }
    public Student(String stuName, String age, Date date, int score) {
        super();
        this.stuName = stuName;
        this.age = age;
        this.date = date;
        this.score = score;
    }
    public String getStuName() {
        return stuName;
    }
    public void setStuName(String stuName) {
        this.stuName = stuName;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    @Override
    public String toString() {
        return "Student [stuName=" + stuName + ", age=" + age + ", date=" + date + ", score=" + score + "]";
    }
}

本文转载自:http://blog.csdn.net/yangrunkangbla/article/details/50222427

共有 人打赏支持
非著名程序员Bla
粉丝 15
博文 75
码字总数 0
作品 0
合肥
后端工程师
私信 提问
JavaBean到XML和JSON的转换

XML和JSON是当今常用的两种数据描述与传输的格式,特别是涉及到JS时使用JSON颇为频繁。自然,在Java的世界里少不了完成JavaBean与这两种格式相互转换的组件,那就是XStream和JSON-lib。这里我...

Idiot_s_Sky
2014/01/14
0
0
xStream完美转换XML、JSON

xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换; 前面有介绍过json-lib这个框架,在线博文:http://www.cnblog...

ibm_hoojo
2011/04/22
0
0
后台数据传输-JSON

image.png 工作中经常要用到Json、JavaBean、Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考。现在主流的转换工具有Json-lib、Jackson、Fastjson、Gson等,我为大家一一做简单...

东东2866
2017/11/16
0
0
xStream完美转换XML、JSON

xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换; 前面有介绍过json-lib这个框架,在线博文:http://www.cnblog...

DavidBao
2015/05/01
0
1
Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识

乱码问题应该是做javaWeb开发人员都遇到过的问题吧,这个问题当时还影响了我学习java的想法,甚至有过想放弃的想法,没办法,当时年轻,呵呵。其实产生乱码问题的原因有很多,解决乱码的问题...

长平狐
2012/11/12
86
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 懒床是对冬天最起码的尊重

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享daniwellP/桃音モモ的单曲《Nyan Cat》 《Nyan Cat》- daniwellP/桃音モモ 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪...

小小编辑
今天
27
2
码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
4
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部