如何通过javax.ws.rs生成含特殊字符的JSON属性键?
解决方法
因为Java变量名不允许包含冒号,所以需要通过JSON序列化注解来指定字段对应的JSON键名,最常用的方案是使用Jackson的@JsonProperty注解(JAX-RS的多数实现如Jersey默认用Jackson处理JSON序列化):
- 确保项目中引入了Jackson相关依赖(比如
jackson-databind) - 修改你的实体类,给
extension字段添加@JsonProperty注解,指定目标JSON键名:
import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; @Getter @Setter public class MyObject { private String name; @JsonProperty("extension:anybill") private String extension; }
这样当你使用javax.ws.rs.client.Entity.json(myObject)生成JSON时,Jackson会自动把extension字段映射为"extension:anybill"这个带冒号的键,生成你需要的JSON格式。
如果你的项目用的是Gson作为JSON序列化库,对应的注解是@SerializedName("extension:anybill"),用法类似。
内容的提问来源于stack exchange,提问作者Steffen
相关产品推荐
相关产品推荐

