解决首字母大小写问题
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;