宾语:

@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;}
}


其余Web服务:

    @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字符串中的字段名称?

最佳答案

您可以使用@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注释吸气剂(然后不需要@XmlAccessorType注释)。



除了JAXB注释,您可能还需要考虑Jackson。这是can be used with Jersey流行的Java JSON解析器。然后,您可以改用@JsonProperty(但是Jackson也可以使用JAXB批注)。

使用Jackson,根据您的需要,您可以使用PropertyNamingStrategy,例如PropertyNamingStrategy.UpperCamelCaseStrategy

10-08 18:54