根据this API指南,在响应正文中,您必须始终返回JSON对象(而不是数组)作为顶级数据结构,以支持将来的可扩展性。
是否有一种方便而优雅的方法可以通过Spring实现(无需将每个方法的返回类型都包装到包装对象中)?是否有配置属性或扩展点,可用于自定义spring如何将集合序列化为其JSON表示形式?
所以不是
[
{
"Prop1": "Val1",
"Prop2": "Val2"
},
{
...
}
]
以下方法
@GetMapping
public ResponseEntity<Collection<MyType>> get() {
…
}
应该返回
{
"MyType":[
{
"Prop1": "Val1",
"Prop2": "Val2"
},
{
...
}
]
}
答案 0 :(得分:1)
您可以尝试使用ResponseBodyAdvice。
但是,如果要在控制器句柄之后修改响应,那么我想如果有的话,它会破坏api文档响应格式。
答案 1 :(得分:-2)
根据我对c#的经验,您可以执行以下操作: 根据属性准备您的列表,假设创建一个具有两个属性prop1和prop2的名为Prop的类 实例化您的课程列表
List<Prop> props=new List<Prop>();
然后用数据填充
props.add(new Prop{prop1=value,prop2=value});
props.add(new Prop{prop1=value,prop2=value});
props.add(new Prop{prop1=value,prop2=value});
注意:如果数据来自数据库,则可以使用for / foreach循环将数据添加到列表中
示例
foreach(var data in dbData){
props.add(new Prop{prop1=data.value1,prop2=data.value2});
}
最后返回带有值列表的对象
在此处输入代码
return new {MyType=props};