我的XML Schema中有一个元素,定义如下:
<xs:complexType name="MyNumberCodeType">
<xs:sequence>
<xs:element name="Code" type="NumberCodeValueType" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
NumberCodeValueType的位置是:
<xs:simpleType name="NumberCodeValueType">
<xs:restriction base="xs:int">
<xs:pattern value="[0-7]{7}"/>
</xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)
也就是说,我的号码可以从前导0开始.我无法修改此架构.我正在使用JAXB生成我的Java类.不幸的是,Code元素的访问器采用整数列表作为参数,这意味着所有前导0都被剥离(因为,据我所知,当使用整数类型时,无法在Java中保持前导0)!
有什么办法可以解决这个问题吗?
谢谢你的帮助!
我有一个Web服务,该服务将“ null”作为任何属性的字符串而不是null文字输出。它几乎针对所有数据类型(字符串或日期)执行此操作。例如,在理想情况下,它会返回
{
"item" : {
"title": "Some title",
"expires": "2014-11-02 00:00:00"
}
}
Run Code Online (Sandbox Code Playgroud)
但有时它返回:
{
"item" : {
"title": "null",
"expires": "2014-11-02 00:00:00"
}
}
Run Code Online (Sandbox Code Playgroud)
这会使title属性值为“ null”,而不是将其设置为null。或某个时候:
{
"item" : {
"title": "Some title",
"expires": "null"
}
}
Run Code Online (Sandbox Code Playgroud)
这使得反序列化失败,因为dateformat不匹配。如何在反序列化期间配置objectmapper或注释模型类以解决这些问题?
我的模型类如下:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Item {
public String title;
@JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
public Date expires;
}
Run Code Online (Sandbox Code Playgroud)
这是一个Android应用程序,因此我无法控制Web服务。提前致谢