fastjson对象转为JSON后,保留原字段名(比如,大驼峰、下划线)
方案1: JSON.toJSON设置SerializeConfig的fieldBase为true。
方案2: 使用@JSONField(name = “jsonKey名称”)指定名称。
代码
public class JsonNameDemo {
public static void main(String[] args) {
UserBean userBean = UserBean.builder()
.snake_case("test")
.PascalCase("test1")
.id(1L)
.build();
// 对象转成JSON后,保留字段原名称
JSONObject jsonObject = (JSONObject) JSON.toJSON(userBean, new SerializeConfig(true));
System.out.println(JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat));
System.out.println(JSON.toJSONString(JSON.toJSON(userBean, new SerializeConfig(true))));
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class UserBean {
private String snake_case;
private String PascalCase;
private Long id;
}
}
结果
{
"PascalCase":"test1",
"id":1,
"snake_case":"test"
}