java - @JSONField 它在春季启动时不起作用
问题描述
我对 pointX 和 pointY 使用@JSONField 注释,我想将 pointX 更改为 point_x!我想像point_x一样显示pointX!但它没有用!它始终是 pointX 和 pointY!但其他领域还可以!
我的java bean是这样的!
@Data
public class PointListOutput {
@JSONField(name = "latest_area_point_list")
private List<Point> latestAreaPointList;
@Data
public static class Point {
@JSONField(name = "point_x")
private Float pointX;
@JSONField(name = "point_y")
private Float pointY;
}
}
我的配置
@Override
protected void configureMessageConverters(final List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
// create FastJson converter
final FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
final List<MediaType> supportedMediaTypes = new ArrayList<>();
supportedMediaTypes.add(MediaType.APPLICATION_JSON);
supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
converter.setSupportedMediaTypes(supportedMediaTypes);
// create configuration class
final FastJsonConfig config = new FastJsonConfig();
// update filter of response
config.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
converter.setFastJsonConfig(config);
converters.add(new ByteArrayHttpMessageConverter());
converters.add(converter);
}
这是我的 http 响应,您可以看到 pointX 是 pointX!不是point_x!
{
"code": 1,
"message": "Success",
"data": [
{
"latest_area_point_list": [
{
"pointX": 1.1,
"pointY": 1.1
},
{
"pointX": null,
"pointY": 1.1
}
]
}
]
}
解决方案
我解决了这个问题,这是因为org.springframework.beans.BeanUtils.copyProperties
我使用org.springframework.beans.BeanUtils.copyProperties
将 DAO java bean 更改为 View java bean。
我的道 java bean
@Data
@DynamoDBTable(tableName = "xxxx")
public class PointPojo {
@DynamoDBAttribute(attributeName = "latest_area_point_list")
private List<Point> latestAreaPointList;
@Data
@DynamoDBDocument
public static class Point {
@DynamoDBAttribute(attributeName = "point_x")
private Float pointX;
@DynamoDBAttribute(attributeName = "point_y")
private Float pointY;
}
}
在was not
之后PointPojo
没有 hava ,它是,它没有 hava
所以这就是根本原因!@JSONField(name = "point_x")
copyProperties
Point
PointListOutput$Point
PointPojo@Point
@JSONField(name = "point_x")
我用orika replace org.springframework.beans.BeanUtils.copyProperties
,很完美!</p>
推荐阅读
- php - PHP:检查反射类是否有构造函数?
- flutter - 将逗号分隔值添加到类列表
- arrays - 根据条件将幻灯片编号添加到数组中
- android - 我在 android studio 中找不到应用程序模块
- json - 在 PostgreSQL 12 中提取 JsonB 字典的元素
- python - 如何在 SageMath 中对一组两个微分方程进行数值积分?
- java - 在 SQLite 数据库中插入或读取值不会产生任何结果
- zkteco - ZKemkeeper ReadGeneralLogData 函数返回 false
- java - 有没有办法在你的小黄瓜上的数据表中发送空格
- javascript - 如何在不影响页面加载的大型内容绘制的情况下加载高分辨率背景图像