Java【问题 06】一次解决JSON.toJSONString和@RestController首字母大小写问题(特指属性首字母大写变小写)

1.问题说明及解决

一次协议对接,接口文档里的属性没有使用驼峰或者下划线,而是全部首字母大写,类似TableName、ObjectID,使用lombok创建的实体类。

1.1 @RestController

接口返回对象的首字母变成小写类似tableName、objectId,问题解决:

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class TestObject {
    
    
    @JsonProperty("TableName")
    private String TableName;
    
    @JsonProperty("ObjectID")
    private String ObjectID;
}

1.2 JSON.toJSONString()

不管是自带JSON,还是阿里的fastjson,都会将属性的字段首字母改为小写需要在大写的字段上用@JSONField这个注解:

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class TestObject {
    
    
    @JsonProperty("TableName")
    @JSONField(name = "TableName")
    private String TableName;
    
    @JsonProperty("ObjectID")
    @JSONField(name = "ObjectID")
    private String ObjectID;
}

2.总结

  • 问题一涉及的类为import com.fasterxml.jackson.annotation.JsonProperty;
  • 问题二涉及的类为import com.alibaba.fastjson.annotation.JSONField;

猜你喜欢

转载自blog.csdn.net/weixin_39168541/article/details/131019837