我有一个控制器,我想在它的请求体中接受一个自定义对象。但是,进来的json数据是嵌套的。有可能把嵌套的json对象Map到一个类吗?或者,我需要把json对象作为一个字符串,然后使用jsonMap器(像Jackson)吗?下面是一个例子来说明我的意思:
- 正在发送的json数据:**
{
'function_call': 'create_book',
'date_called': 1672753599223,
'Book':{
'id': 1,
'title': "some title',
'desc': 'some desc'
}
}
- 图书分类:**
@Data
public class Book{
public int id;
public String title;
public String desc;
}
- 控制器:**
@PostMapping("/data-product")
@ResponseBody
public void createBook(@RequestBody Book book) {
System.out.print(book);
}
1条答案
按热度按时间lsmepo6l1#
方法是创建一个新的类来处理JSON对象,Spring需要知道JSON的结构。
课本:
创建一个Request类来处理JSON:
提醒!属性名称必须与JSON请求相同
然后将Book Request类设置为一个参数,这样就只能在JSON中获取Book obj上的数据:
JSON请求: