json - Spring REST - 发布组合 JSON(多个对象)
问题描述
我有四张桌子:
车
- ID
- 颜色
- 制造商
- 模型
座位
- ID
- 姓名
- id_car
胎
- ID
- 姓名
- 圆环
- id_car
声音播放器
- ID
- 姓名
- id_car
我想知道如果使用 Spring REST,是否可以通过 POST 编写一个完整的 JSON,其中包含各种模型的对象,而不必发送每个模型的单个对象。
完整 JSON 的示例如下:
{
"color": "white",
"manufacturer": "toyota",
"model": "corolla",
"seat": {
"name": "Recaro",
},
"tire": {
"name": "Recaro",
"circlet": "18",
},
"soundPlayer": {
"name": "Sony DHC-5000",
}
}
解决方案
您可以创建一些 DTO,其中将包含您需要的所有模型以及所有参数
您可以通过此链接了解 dto 模式:
https://www.tutorialspoint.com/design_pattern/transfer_object_pattern.htm
在您的情况下,您可以创建:
@Getter
@Setter
public class CarDto{
private String color;
private String manufacturer;
private String model;
private SeatDto seat;
private TireDto tire;
private SoundPlayerDto soundPlayer;
}
@Getter
@Setter
public class SeatDto {
private String name;
}
@Getter
@Setter
public class TireDto{
private String name;
private String circlet
}
@Getter
@Setter
public class SoundPlayerDto{
private String name;
private String circlet
}
您可以按照您的描述传递您的请求:
@RequestBody CarDto carDto;
然后您可以编写自己的从 dto 到您的真实实体的转换器并使用它们
@Getter 和 @Setter 它的 lombok 注释您可以从以下链接中了解它们:
推荐阅读
- angular - 输入“播放器 | undefined' 不可分配给类型 'Player'。类型“未定义”不可分配给类型“播放器”.ts(2322)
- ruby-on-rails - Wicked PDF 生成了一个包含大量空白的 PDF
- sql - 相当于 Oracle 中没有 FROM 的 SELECT
- asp.net-mvc-5 - 如何在使用部分视图分解 dotNet MVC 中的页面时利用 DataAnnotations?
- modelsim - 如何更改在 Modelsim/Questa 中编译工作库的目录?
- java - java中的十进制格式没有给出适当的结果
- docker - 如何防止 Docker 容器中的 Internet 访问
- javascript - 如何避免 API 响应数据存储到缓存中?
- ssas - currentmember 在 currentmember 的后代中
- android - 如何测试Android绑定服务的客户端绑定到服务的过程?