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

专业网站开发报价/站长seo

专业网站开发报价,站长seo,养殖推广网站怎么做,这样做自己的网站简介 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档。 JA…

简介

JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档。
JAXB2.0是JDK 1.6的组成部分。我们不需要下载第三方jar包 即可做到轻松转换。

概念

Marshaller接口,将Java对象序列化为XML数据。
Unmarshaller接口,将XML数据反序列化为Java对象。

@XmlType,将Java类或枚举类型映射到XML模式类型
@XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标 注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。
@XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。
@XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。
@XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。
@XmlRootElement,将Java类或枚举类型映射到XML元素。
@XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。
@XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。

示例

Order.java

package com.ricky.domain;import javax.xml.bind.annotation.*;
import java.util.List;
import java.util.Set;/*** 订单** @author Ricky Fung* @create 2016-06-13 18:27*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
@XmlType(propOrder = {"id","totalPrice","category","shoppingList","tags","address"})
public class Order {@XmlAttribute(name="id")private long id;private String category;@XmlElementWrapper(name = "shopping_list")@XmlElement(name = "shopping_item")private List<ShoppingItem> shoppingList;@XmlElementWrapper(name = "tags")@XmlElement(name = "tag")private Set<String> tags;@XmlElement(name = "addr", required = true)private Address address;@XmlElement(name = "total_price")private float totalPrice;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public List<ShoppingItem> getShoppingList() {return shoppingList;}public void setShoppingList(List<ShoppingItem> shoppingList) {this.shoppingList = shoppingList;}public Set<String> getTags() {return tags;}public void setTags(Set<String> tags) {this.tags = tags;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public float getTotalPrice() {return totalPrice;}public void setTotalPrice(float totalPrice) {this.totalPrice = totalPrice;}@Overridepublic String toString() {return "Order{" +"id=" + id +", category='" + category + '\'' +", shoppingList=" + shoppingList +", tags=" + tags +", address=" + address +", totalPrice=" + totalPrice +'}';}
}

ShoppingItem.java

package com.ricky.domain;import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;/*** 购物项** @author Ricky Fung* @create 2016-06-13 19:00*/
@XmlAccessorType(XmlAccessType.FIELD)
public class ShoppingItem {private String name;private float price;private int num;public String getName() {return name;}public void setName(String name) {this.name = name;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}@Overridepublic String toString() {return "ShopItem{" +"name='" + name + '\'' +", price=" + price +", num=" + num +'}';}
}

Address.java

package com.ricky.domain;import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;/*** 收货地址** @author Ricky Fung* @create 2016-06-13 18:28*/
@XmlAccessorType(XmlAccessType.FIELD)
public class Address {private String province;private String city;private String district;private String street;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getDistrict() {return district;}public void setDistrict(String district) {this.district = district;}public String getStreet() {return street;}public void setStreet(String street) {this.street = street;}@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", city='" + city + '\'' +", district='" + district + '\'' +", street='" + street + '\'' +'}';}
}

JAXBDemo.java

package com.ricky;import com.ricky.domain.Address;
import com.ricky.domain.Order;
import com.ricky.domain.ShoppingItem;
import com.ricky.util.JAXBUtil;
import javax.xml.bind.JAXBException;
import java.util.*;/*** JAXB示例** @author Ricky Fung* @create 2016-06-13 18:15*/
public class JAXBDemo {public static void main(String[] args) throws JAXBException {Order order = new Order();order.setId(2);order.setCategory("3C");Set<String> tags = new HashSet<String>();tags.add("3C");tags.add("手机");order.setTags(tags);List<ShoppingItem> shopping_list = new ArrayList<ShoppingItem>();ShoppingItem shoppingItem1 = new ShoppingItem();shoppingItem1.setName("Apple 6s Plus 64G");shoppingItem1.setPrice(6499f);shoppingItem1.setNum(1);shopping_list.add(shoppingItem1);ShoppingItem shoppingItem2 = new ShoppingItem();shoppingItem2.setName("魅蓝Note3 32G");shoppingItem2.setPrice(999f);shoppingItem2.setNum(1);shopping_list.add(shoppingItem2);order.setShoppingList(shopping_list);order.setTotalPrice(7498f);Address address = new Address();address.setProvince("湖北省");address.setCity("武汉市");address.setDistrict("武昌区");address.setStreet("复兴路");order.setAddress(address);String xml = JAXBUtils.marshal(order);System.out.println("marshaller order:"+xml);Order o = JAXBUtils.unmarshal(xml, Order.class);System.out.println("unmarshaller order:"+o);}
}

JAXBUtils

package com.bytebeats.netty4.common.util;import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.io.StringWriter;/*** ${DESCRIPTION}** @author Ricky Fung* @create 2017-01-08 21:06*/
public class JAXBUtils {public final static String CHARSET_NAME = "UTF-8";public static String marshal(Object obj) throws JAXBException {JAXBContext jaxbContext = JAXBContext.newInstance(obj.getClass());Marshaller jaxbMarshaller = jaxbContext.createMarshaller();// output pretty printedjaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, CHARSET_NAME);StringWriter writer = new StringWriter();try{jaxbMarshaller.marshal(obj, writer);return writer.toString();} finally {IoUtils.closeQuietly(writer);}}public static <T> T unmarshal(String xml, Class<T> cls) throws JAXBException {JAXBContext jaxbContext = JAXBContext.newInstance(cls);Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();StringReader reader = null;try{reader = new StringReader(xml);return (T) jaxbUnmarshaller.unmarshal(reader);} finally {IoUtils.closeQuietly(reader);}}
}

忽略字段

使用@XmlTransient

package com.ricky.domain;import javax.xml.bind.annotation.*;
import java.util.List;/*** ${DESCRIPTION}** @author Ricky Fung* @create 2016-06-14 18:35*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Student {private long id;private String name;@XmlTransientprivate int age;@XmlElementWrapper(name = "hobbies")@XmlElement(name = "hobby")private List<String> hobbies;public long getId() {return id;}public void setId(long 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 List<String> getHobbies() {return hobbies;}public void setHobbies(List<String> hobbies) {this.hobbies = hobbies;}
}
package com.ricky;import com.ricky.domain.Student;
import com.ricky.util.JAXBUtil;
import javax.xml.bind.JAXBException;
import java.util.ArrayList;
import java.util.List;/*** ${DESCRIPTION}** @author Ricky Fung* @create 2016-06-14 18:34*/
public class JAXBExcludeDemo {public static void main(String[] args) throws JAXBException {Student student = new Student();student.setId(1l);student.setName("Ricky");student.setAge(27);List<String> hobbies = new ArrayList<String>();hobbies.add("NBA");hobbies.add("电影");student.setHobbies(hobbies);String xml = JAXBUtils.marshal(student);System.out.println(xml);}
}

参考资料:
https://java.net/projects/jaxb2-commons/pages/Home

http://www.lbrq.cn/news/1411165.html

相关文章:

  • 自己免费做网站的流程/搜索引擎优化主要包括
  • 做平台的网站有哪些功能/seo是什么软件
  • 如何删除网站后台的文章/网络推广营销方案免费
  • 网站开发 网站建设/上海专业的seo公司
  • wordpress网站显示不全/seo标题优化是什么意思
  • 高端网站建设 选择磐石网络/免费发外链平台
  • wordpress制作客户端/如何点击优化神马关键词排名
  • 网站海外推广哪家好/2022新闻大事件摘抄
  • 长沙小升初有什么做试卷的网站/网站制作公司排行榜
  • 一个虚拟主机如何做两个网站/推广之家官网
  • 济南网站建设企业/搜索推广开户
  • wordpress 多站点开启/优化设计七年级上册数学答案
  • php语言 网站建设/写文章在哪里发表挣钱
  • 昆明云南微网站/seo基础优化包括哪些内容
  • 丰台青岛网站建设/网站排名优化服务公司
  • 岳池县网站建设/网上营销的方式
  • 免费手机网站空间/在线咨询
  • 电子商务网站开发常用工具/卖友情链接的哪来那么多网站
  • 德清县建设银行官方网站/真正的免费建站在这里
  • 在阿里云做视频网站需要什么/不受国内限制的搜索引擎
  • 关于网站开发相关法律条款/零基础怎么做电商
  • 苏州有哪些做网站公司好/企业建站流程
  • 加若格网站做么样/无锡百度推广代理公司
  • 网站焦点图怎么做链接/企业网站页面设计
  • 怎么做像知乎一样的网站/网站域名费一年多少钱
  • wordpress二级菜单代码/谷歌搜索优化seo
  • 深圳交易网站建设/网络营销产品
  • ppt图标网站链接怎么做/中国最大的企业培训公司
  • 东莞金融网站建设/最新今日头条
  • 织梦后台点击网站主页/搜索引擎优化涉及的内容
  • 规避(EDR)安全检测--避免二进制文件落地
  • C语言学习笔记之文件操作
  • Collections.synchronizedList是如何将List变为线程安全的
  • 【PHP】Hyperf:接入 Nacos
  • 五、redis入门 之 客户端连接redis
  • 8.从零开始写LINUX内核——初始化中断控制芯片