我请求以下结构的有效负载:
public class University{
.......
List<Dept> departments;
}
public class Dept{
.......
List<Student> students;
}
public class Student{
.......
List<Semester> semester;
}
public class Semester{
.......
}
现在我对应的Java类具有以下类型:
List<Semester> semester
现在,除@RequestBody
我正在使用Spring RestController,并使用@Component({
selector: 'someSelector',
.....
})
export class SomeComponent implements OnInit, OnDestroy {
public isCon: boolean;
public dropdown: string[];
private isComponentActive: boolean = true;
constructor(@Inject(MAT_DIALOG_DATA) public data: any, private store$: Store<State>) {
this.isCon = data.isCon;
}
ngOnInit(): void {
this.store$.pipe(
select(this.returnColumns()),
takeWhile((): boolean => this.isComponentActive)
).subscribe((dropdown: []): void => this.setDropdown(dropdown));
}
private setDropdown(dropdown: []): void {
this.dropdown= filter(dropdown, (key): boolean => !key.isTrue)
.map((m): string => m.name);
}
private returnColumns() {
return this.isCon ? getConCol : getEmpCol;
}
ngOnDestroy(): void {
this.isComponentActive = false;
}
}
进行映射。
有人可以提供任何解决方案吗?
答案 0 :(得分:2)
对于请求JSON映射,Spring使用getter和setter设置RequestBody Object的属性。
@JsonProperty("semester")
列出学期;
尽管与问题无关,但以下内容也应得到照顾。
“学期”:[{ “ SemesterNo”:1 “ SemesterType”:“奇数”, “ CGPA”:8 }, ]
a。更正它,因为JSON无效,“ CGPA”后不应加逗号:8。
b。 semester应该是semesterNo,因为Spring将使用setterName来设置值,默认情况下是驼峰式大小写,首字母小
或者,如果要使用SemesterNo,请与@JsonProperty("SemesterNo")
一起使用。
答案 1 :(得分:0)
使用@JsonProperty("semester")
。当您要使用与JSON字段不同的变量名称时,此注释也有帮助。有关更多参考信息,请查看this resource。
此外,请在CGPA值之后更正不必要的逗号。用于构建POJO类,jsonschema2pojo.org