Java 如何在spring中将set对象绑定到控制器

Java 如何在spring中将set对象绑定到控制器,java,spring,Java,Spring,我试图对控制器进行post调用,但是我期望的对象包含一个Set数据类型,我不确定post数据应该是什么样子 型号: public class Notebook{ private string name; private Set<Todo> todos; } public class Todo{ private String name; } 目前,我已尝试发布如下示例: curl --data "name=some notebook&todos[0].name=

我试图对控制器进行post调用,但是我期望的对象包含一个Set数据类型,我不确定post数据应该是什么样子

型号:

public class Notebook{
  private string name;
  private Set<Todo> todos;
}

public class Todo{
  private String name;
}
目前,我已尝试发布如下示例:

curl --data "name=some notebook&todos[0].name=todo1&todos[1].name=todo2" http://localhost:8080/api/notebook

似乎不起作用。任何人都有使用集合的经验?

您应该使用
@RequestBody
注释限定
笔记本q
,以便将请求映射到
笔记本
类型的对象。有关Spring MVC文档中输入数据和转换器格式的更多信息:

我们以JSON格式从前端发送数据,并使用Jackson JSON将其转换为Java对象。如果您选择该路线,您可以直接将
todo
声明为
Set
,并且输入将是

{
    name: "some notebook",
    todos: ["todo1", "todo2"]
}

谢谢我还可以将数据类型从Set改为List,并使用我以前想要使用的数组索引。
{
    name: "some notebook",
    todos: ["todo1", "todo2"]
}