将对象转换为json控制字段名称大写第一个字母

时间:2018-01-16 13:29:08

标签: java json rest jersey jax-rs

对象:

@XmlRootElement
public class AccountSyncResponse 
{
        private String Result;
        private String Value;

        public AccountSyncResponse() {}            

        public String getResult() {return Result;}
        public void setResult(String Result) {this.Result = Result;}
        public String getValue() {return Value;}
        public void setValue(String Value) {this.Value = Value;}        
}

Rest Web Service:

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public AccountSyncResponse excute(AccountSyncRequest ASReq) 
    {        
       AccountSyncResponse ASRes = new AccountSyncResponse();
       return ASRes;    
    }

结果为{"result":"Create","value":"123456"}

我需要字段名称的第一个字母为大写{"Result":"Create","Value":"123456"}

如何在生成的json字符串中控制字段名称?

1 个答案:

答案 0 :(得分:1)

您可以使用@XmlElement,如下所示:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class AccountSyncResponse  {

    @XmlElement(name = "Result")
    private String result;

    @XmlElement(name = "Value")
    private String value;

    // Default constructor, getters and setters
}

或者,您可以使用@XmlElement注释getter(然后不需要@XmlAccessorType注释)。

除JAXB注释外,您可能还想考虑杰克逊。它是can be used with Jersey的流行JSON Java解析器。然后您可以使用@JsonProperty代替(但Jackson也可以使用JAXB注释)。

根据您的需要,杰克逊可以使用PropertyNamingStrategyPropertyNamingStrategy.UpperCamelCaseStrategy