对象反序列化有问题。
我的DTO包含一个配对列表(以前的版本是Map)。
textView
我不断收到data class MyDto(
@JsonIgnoreProperties(ignoreUnknown = true)
val myField: List<Pair<String, Boolean>>?
)
MissingKotlinParameterException
我的json看起来像:
com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class kotlin.Pair<java.lang.String,java.lang.Boolean>] value failed for JSON property first due to missing (therefore NULL) value for creator parameter first which is a non-nullable type\n at [Source: (io.netty.buffer.ByteBufInputStream); line: 9, column: 33] (through reference chain: my.path.MyDto[\"field\"]->java.util.ArrayList[0]->kotlin.Pair[\"first\"])\n\tat org.springframework.http.codec.json.AbstractJackson2Decoder.processException(AbstractJackson2Decoder.java:162)
如您所见,我已经使列表可以为空,并添加了注释{
"myField" : [
"A": true,
"B": false
]
}
。但是我仍然得到错误。
我对objectMapper的配置
@JsonIgnoreProperties
我还应该启用/禁用哪些功能?
答案 0 :(得分:0)
尝试更换
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\User_Model;
class Users extends BaseController
{
protected $User_Model;
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
$this->UserModel = new User_Model();
}
public function list_users()
{
$data['user'] = $this->User_Model->findAll();
return view('users/list_users', $data);
}
}
使用
List<Pair<String, Boolean>>
并将JSON更改为:
Map<String, Boolean>
现在应该按预期工作。