我有一个带有 JAXB 字段注释的 REST 网络服务。 例如,
@XmlAccessorType(XmlAccessType.PROPERTY)
public class MyClass{
private BigDecimal sum;
//+ getter and setter
}
如果字段“sum”包含大值,例如 1234567890.12345,它编码为 1.23456789012345E9 如何编写仅编码此类的规则?
最佳答案
创建适配器
puclic class BigDecimalAdaptor implements XmlAdapter<String, BigDecimal>
并用于(XmlAccessType.FIELD)
访问
@XmlJavaTypeAdapter(BigDecimalAdaptor.class)
private BigDecimal sum;
并用于(XmlAccessType.PROPERTY)
访问
@XmlJavaTypeAdapter(BigDecimalAdaptor.class)
public getSum()
{
return sum;
}
适配器可以像
public class BigDecimalAdapter extends XmlAdapter<String, BigDecimal>{
@Override
public String marshal(BigDecimal value) throws Exception
{
if (value!= null)
{
return value.toString();
}
return null;
}
@Override
public BigDecimal unmarshal(String s) throws Exception
{
return new BigDecimal(s);
}
}
关于java - 在 JAXB 编码中使用 BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910413/