栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JAXB Marshaller没有元素whos的值为null

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAXB Marshaller没有元素whos的值为null

默认情况下, JAXB(JSR-222)
实现不会编组空值的属性/元素。对于Java模型中的以下字段,这将是正确的。

@XmlElement(name = "Val1", required = true)protected BigDecimal val1;

您可以像在此处所做的那样通过

nillable=true
@XmlElement
注释上指定来覆盖此行为:

@XmlElement(name = "Val2", required = true, nillable = true)protected BigDecimal val2;

这将使该

xsi:nil="true"
属性具有杠杆作用:

<Val2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

想要查询更多的信息:

  • http://blog.bdoughan.com/2012/04/binding-to-json-xml-handling-null.html

Java模型

人员培训

由于要进行注释,因此

fields
应确保
@XmlAccessorType(XmlAccessType.FIELD)
在类或包级别进行指定(请参阅:http : //blog.bdoughan.com/2011/06/using-jaxbs-
xmlaccessortype-to.html
)。

import java.math.BigDecimal;import javax.xml.bind.annotation.*;import javax.xml.datatype.XMLGregorianCalendar;@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)public class PersonTraining {    @XmlElement(name = "Val1", required = true)    protected BigDecimal val1;    @XmlElement(name = "Val2", required = true, nillable = true)    protected BigDecimal val2;    @XmlElement(name = "Val3", required = true, nillable = true)    @XmlSchemaType(name = "dateTime")    protected XMLGregorianCalendar val3;}

示范代码

演示版

import javax.xml.bind.*;public class Demo {    public static void main(String[] args) throws Exception {        JAXBContext jc = JAXBContext.newInstance(PersonTraining.class);        PersonTraining pt = new PersonTraining();        Marshaller marshaller = jc.createMarshaller();        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);        marshaller.marshal(pt, System.out);    }}

输出量

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><personTraining>    <Val2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>    <Val3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/></personTraining>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号