RequestBody将属性值传递到集合中

时间:2018-07-16 13:25:22

标签: java json spring

假设以下JSON:

file:///file/path   <--- happy

和以下两个类:

{
 "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中定义的所有对象定义一个公共值。现在,我在Spring项目中定义了一个REST控制器,该控制器需要此JSON并将其解析为上述类。

我的最终目标是最终使用两个值将ClassB对象持久保存到数据库中:

array_A

2 个答案:

答案 0 :(得分:1)

创建请求类,如下所示:

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

答案 1 :(得分:0)

以JSONbject或JsonNode或您的Spring配置给您的任何形式接收JSON,然后自己编写一些代码来复制字段以适合ClassA。