Spring @Requestbody没有映射到内部类

我正在使用Spring 4.x进行Spring Rest Api项目

Controller.java

@PostMapping("newTransaction")

TransactionRequestModel insertNewTransaction(@RequestBody TransactionRequestModel model){

//do something

}

TransactionRequestModel.java

public class TransactionRequestModel {

private int id;

private List<KeyValue> keyValueList;

public TransactionRequestModel(){}

//default constructor

//getter-setter

}

KeyValue.java

public class KeyValue {

String key;

String value;

//default constructor

//setter-getter

}

请求正文

{

"id": 1

"keyValueList": [

{

"key": "dummy",

"value": "dummy"

}

]

}

使用杰克逊的Spring消息转换器工作正常。

当我将 TransactionRequestModel.java 更改为以下内容(并删除 KeyValue.java )时

public class TransactionRequestModel {

public class KeyValue {

String key;

String value;

//default constructor

//setter-getter

}

private int id;

private List<KeyValue> keyValueList;

public TransactionRequestModel(){}

//default constructor

//getter-setter

}

意味着,将 KeyValue设置 为 ,会出现以下错误。

org.springframework.http.converter.HttpMessageNotReadableException:无法读取文档:未找到类型[简单类型,类com.example.model.TransactionRequestModel

$ KeyValue]的合适构造函数:无法从JSON对象实例化(缺少默认构造函数或创建者,还是需要添加/启用类型信息?)

SO中的所有相关文章都提到了第一种情况。我想知道为什么这行不通。请帮忙。

回答:

你必须使自己的内在阶级static

public class TransactionRequestModel {

public static class KeyValue {

String key;

String value;

//default constructor

//setter-getter

}

private int id;

private List<KeyValue> keyValueList;

public TransactionRequestModel(){}

//default constructor

//getter-setter

}

以上是 Spring @Requestbody没有映射到内部类 的全部内容, 来源链接: utcz.com/qa/433621.html

回到顶部