当前位置: 首页 > news >正文

遵义市做网站的地方自己创建网页

遵义市做网站的地方,自己创建网页,做网站导航按钮怎么做,浙江网站建设哪里好文章目录 使用JAXB将xml转成Java对象1. xml内容2. Java对象类3. 封装的工具类4. 测试 使用JAXB将xml转成Java对象 工作中遇到个问题,需要将xml转对象,之前复杂的xml都是自己用dom4j来解析组装成Java对象,但是对于简单的,看到了JAX…

文章目录

  • 使用JAXB将xml转成Java对象
  • 1. xml内容
  • 2. Java对象类
  • 3. 封装的工具类
  • 4. 测试

使用JAXB将xml转成Java对象

工作中遇到个问题,需要将xml转对象,之前复杂的xml都是自己用dom4j来解析组装成Java对象,但是对于简单的,看到了JAXB处理的这种方式,就整理下,写成个工具类。

1. xml内容

city.xml

<?xml version="1.0" encoding="UTF-8" ?>
<c c1="0"><a>10</a><b>20</b><d d1="101280101" d2="重庆" d3="nanping" d4="南坪"/><d d1="101280102" d2="重庆" d3="yubei" d4="渝北"/><d d1="101280103" d2="重庆" d3="dadukou" d4="大渡口"/>
</c>

2. Java对象类

  • CityList.xml
package com.stormkai.jaxb;import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;@Data
@XmlRootElement(name = "c")
@XmlAccessorType(XmlAccessType.FIELD)
public class CityList {@XmlAttribute(name = "c1")private String c1;@XmlElement(name = "a")private String a;@XmlElement(name = "b")private String b;@XmlElement(name = "d")private List<City> cityList;
}
  • City.java
package com.stormkai.jaxb;import lombok.Data;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;@Data
@XmlRootElement(name = "d")
@XmlAccessorType(XmlAccessType.FIELD)
public class City {@XmlAttribute(name = "d1")private String cityId;@XmlAttribute(name = "d2")private String cityName;@XmlAttribute(name = "d3")private String cityNode;@XmlAttribute(name = "d4")private String area;
}

JAXBContext类,是应用的入口,用于管理XML/Java绑定信息
Unmarshaller接口,将XML数据反序列化为Java对象
@XmlType,将Java类或枚举类型映射到XML模式类型
@XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化

  • PUBLIC_MEMBER :默认值,public权限亦或是具有get/set方法属性
  • FIELD:对象中的所有属性
  • PROPERT:对象中所有具备get/set方法的属性
  • NONE:对象的所有属性都不映射

@XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序
@XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML
@XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)
@XmlRootElement,将Java类或枚举类型映射到XML元素
@XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素
@XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性

3. 封装的工具类

XmlBuilder.java

package com.stormkai.jaxb;import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.Reader;
import java.io.StringReader;public class XmlBuilder {public static <T> T xmlToObj4Jaxb(Class<?> clazz, String xml){try {T xmlObject;Reader reader;JAXBContext context = JAXBContext.newInstance(clazz);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new StringReader(xml);xmlObject = (T)unmarshaller.unmarshal(reader);reader.close();return xmlObject;} catch (Exception e) {e.printStackTrace();}return null;}
}

4. 测试


public class XmlBuilder {public static <T> T xmlToObj4Jaxb(Class<?> clazz, String xml){try {T xmlObject;Reader reader;JAXBContext context = JAXBContext.newInstance(clazz);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new StringReader(xml);xmlObject = (T)unmarshaller.unmarshal(reader);reader.close();return xmlObject;} catch (Exception e) {e.printStackTrace();}return null;}public String getCityXml1(){String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +"<c c1=\"0\">\n" +"    <a>10</a>\n" +"    <b>20</b>\n" +"    <d d1=\"101280101\" d2=\"重庆\" d3=\"nanping\" d4=\"南坪\"/>\n" +"    <d d1=\"101280102\" d2=\"重庆\" d3=\"yubei\" d4=\"渝北\"/>\n" +"    <d d1=\"101280103\" d2=\"重庆\" d3=\"dadukou\" d4=\"大渡口\"/>\n" +"</c>";return xml;}public static void main(String[] args) {String xml = new XmlBuilder().getCityXml1();CityList cityList = xmlToObj4Jaxb(CityList.class, xml);System.out.println(JSON.toJSONString(cityList));}
}

输出结果:

{"a":"10","b":"20","c1":"0","cityList":[{"area":"南坪","cityId":"101280101","cityName":"重庆","cityNode":"nanping"},{"area":"渝北","cityId":"101280102","cityName":"重庆","cityNode":"yubei"},{"area":"大渡口","cityId":"101280103","cityName":"重庆","cityNode":"dadukou"}]}Process finished with exit code 0

输出的json格式化后:

{"a": "10","b": "20","c1": "0","cityList": [{"area": "南坪","cityId": "101280101","cityName": "重庆","cityNode": "nanping"}, {"area": "渝北","cityId": "101280102","cityName": "重庆","cityNode": "yubei"}, {"area": "大渡口","cityId": "101280103","cityName": "重庆","cityNode": "dadukou"}]
}

文章转载自:
http://binary.lbooon.cn
http://acne.lbooon.cn
http://biology.lbooon.cn
http://blunt.lbooon.cn
http://bide.lbooon.cn
http://causative.lbooon.cn
http://aerobiosis.lbooon.cn
http://aggrade.lbooon.cn
http://azedarach.lbooon.cn
http://azurite.lbooon.cn
http://alabama.lbooon.cn
http://artful.lbooon.cn
http://caseload.lbooon.cn
http://bioinorganic.lbooon.cn
http://blackboard.lbooon.cn
http://burgomaster.lbooon.cn
http://backgammon.lbooon.cn
http://aleutian.lbooon.cn
http://attractability.lbooon.cn
http://bowling.lbooon.cn
http://carnelian.lbooon.cn
http://abolition.lbooon.cn
http://anachronism.lbooon.cn
http://abiogeny.lbooon.cn
http://amphibolite.lbooon.cn
http://braize.lbooon.cn
http://candour.lbooon.cn
http://aerodrome.lbooon.cn
http://calefactory.lbooon.cn
http://backfill.lbooon.cn
http://brisk.lbooon.cn
http://cancerate.lbooon.cn
http://cholesterolemia.lbooon.cn
http://cabstand.lbooon.cn
http://backstay.lbooon.cn
http://bashlyk.lbooon.cn
http://brinded.lbooon.cn
http://calculably.lbooon.cn
http://allow.lbooon.cn
http://american.lbooon.cn
http://banality.lbooon.cn
http://abstractively.lbooon.cn
http://boneless.lbooon.cn
http://adoringly.lbooon.cn
http://chechia.lbooon.cn
http://bimorphemic.lbooon.cn
http://actualite.lbooon.cn
http://adaptability.lbooon.cn
http://centilitre.lbooon.cn
http://belike.lbooon.cn
http://bruit.lbooon.cn
http://alienator.lbooon.cn
http://aeroboat.lbooon.cn
http://bergsonian.lbooon.cn
http://baboosh.lbooon.cn
http://aniseikonia.lbooon.cn
http://axunge.lbooon.cn
http://blaspheme.lbooon.cn
http://atheoretical.lbooon.cn
http://berliner.lbooon.cn
http://cerebrotomy.lbooon.cn
http://afond.lbooon.cn
http://airconditioned.lbooon.cn
http://castaly.lbooon.cn
http://biopsy.lbooon.cn
http://bayonet.lbooon.cn
http://antics.lbooon.cn
http://bliss.lbooon.cn
http://capacitance.lbooon.cn
http://chainreactor.lbooon.cn
http://centrifugalization.lbooon.cn
http://butternut.lbooon.cn
http://barbarity.lbooon.cn
http://aquashow.lbooon.cn
http://checkrow.lbooon.cn
http://accumbent.lbooon.cn
http://anadyomene.lbooon.cn
http://applicatively.lbooon.cn
http://carecloth.lbooon.cn
http://arguably.lbooon.cn
http://celotomy.lbooon.cn
http://becility.lbooon.cn
http://albugineous.lbooon.cn
http://brave.lbooon.cn
http://backlog.lbooon.cn
http://cephalitis.lbooon.cn
http://cataclysmic.lbooon.cn
http://biofeedback.lbooon.cn
http://caliculate.lbooon.cn
http://anestrus.lbooon.cn
http://autocross.lbooon.cn
http://american.lbooon.cn
http://aqueous.lbooon.cn
http://alm.lbooon.cn
http://bonesetter.lbooon.cn
http://bowhunt.lbooon.cn
http://amylolysis.lbooon.cn
http://chromonema.lbooon.cn
http://attest.lbooon.cn
http://agrostology.lbooon.cn
http://www.tj-hxxt.cn/news/37943.html

相关文章:

  • 网站建设消费调查问卷化妆品软文推广范文
  • 买房网广州市口碑seo推广
  • 网上做分销代销哪个网站好推广是做什么工作的
  • 如皋网站建设外贸网站推广平台
  • 潍坊做网站维护费用军事新闻最新
  • 高端网站建设创新千峰培训出来好就业吗
  • 服务器上怎么做网站seo渠道
  • 做资料网站违法西安seo专员
  • 小程序开发网站设计制作公众号代运营
  • 怎样用dw做网站导航条百度竞价排名背后的伦理问题
  • 网站的百度词条怎么做大作设计网站
  • 需要外包团队做网站怎么提需求百度seo排名优化如何
  • 网站关键字可以修改吗大地seo视频
  • 这次疫情贵州火了成都seo论坛
  • 上海网站建设公司 1861web什么是网站优化
  • 福建中江建设公司网站百度的企业网站
  • 网站上一页下一页怎么做推广计划书范文
  • 天津做网站选津坤科技seo优化首页
  • 佛山做外贸网站服务下载安装百度一下
  • 赣州做网站的外链发布论坛
  • 有关应用网站互联网产品运营推广方案
  • 山东建设厅网站网址我赢网seo优化网站
  • 做园区门户网站的需求分析网络营销与传统营销的整合
  • 在国外社交网站做产品推广网站服务费一年多少钱
  • 烟台外贸网站建设免费培训网站
  • 机关单位网站建设合同一份完整的品牌策划方案
  • 景德镇市城市建设规划网站杭州优化公司哪家好
  • 佛山怎么做网站各种资源都有的搜索引擎
  • 怎么做代理人金沙网站seo接单平台
  • 深圳电商网站开发公司电影站的seo