RequestBody将属性值传递到集合中



假设以下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_Aarray_A中定义的所有对象定义了一个公共值。现在,我在Spring项目中定义了一个REST控制器,它期望这个JSON,并应该将其解析为前面提到的类。

我的最终目标是最终用两个值将ClassB对象持久化到DB中:

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);
}

以JSONbject或JsonNode或Spring配置提供的任何类型接收JSON,并自己编写一些代码,复制字段以适应ClassA。

最新更新