假设以下JSON:
{
"attr_A": "val_A",
"array_A": [{
"attr_B": "val_B"
}]
}
和以下两个类:
public class ClassA {
List<ClassB> children = new ArrayList();
}
public class ClassB {
String val_A;
String val_B;
}
属性
attr_A
为array_A
中定义的所有对象定义一个公共值。现在,我在Spring项目中定义了一个REST控制器,该控制器需要此JSON,并将其解析为上述类。我的最终目标是最终使用两个值将ClassB对象持久保存到数据库中:
TABLE ClassB(attr_A VARCHAR, attr_B VARCHAR)
最佳答案
创建一个请求类,如下所示:
public class RequestDto{
String attr_A;
List<ArrayClass> array_A;
// getters and setters
}
public class ArrayClass{
String attr_B;
// getters and setters
}
使用requestDto作为@RequestBody。
public Response method(@RequestBody RequestDto request)
将请求对象放入控制器后。您可以遍历array_A并根据需要保存该值。
String attr_A = request.getAttr_A();
List<ArrayClass> arrayClassList = request.getArray_A();
for(ArrayClass arrayClass : arrayClasslist){
String attr_B = arrayClass.getAttr_B();
saveTableB(attr_A, attr_B);
}