@RequestBody,在<String> POST 请求中发送列表



我有一个基本的POJO,字段如下所示:

@NotEmpty
@ElementCollection
@Column(name = "TAGS")
private List<String> tags;

我正在尝试向以下控制器发送 JSON 格式的 POST 请求:

@RequestMapping(value = "/post", method = RequestMethod.POST)
public void createPost(@RequestBody BlogPost blogPost) {
blogPostService.addPost(blogPost);
}

我的 JSON:

{
"stuff": "stuff",
"stuff": "stuff",
"tags": [{"Tag 1"}, {"Tag 2"}]
}

基本上我的问题是我不知道如何将其转换为列表。我尝试寻找答案,但什么也没找到。这可能吗?

我得到的错误是:

JSON 解析错误:无法从令牌中反序列化 java.lang.String START_OBJECT实例;

"tags": [{"Tag 1"}, {"Tag 2"}]

对应于对象的数组,而不是应该表示的字符串数组:

"tags": ["Tag 1", "Tag 2"]

要么更改客户端以发送字符串数组:"tags": ["Tag 1", "Tag 2"]

否则,请更改客户端和后端以声明使用将包含 String 值的自定义类进行参数化的 List。

Json发送:

"tags": [{"value": "Tag 1"}, {"value": "Tag 2"}]

后端映射:

private List<MyObject> tags;

在哪里可以声明MyObject

public class MyObject{
private String value;
... // getter - setter
}

你的pojo中有字符串列表,但发送对象列表 卸下支架

{
"stuff": "stuff",
"stuff": "stuff",
"tags": ["Tag 1", "Tag 2"]
}

最新更新