jackson反序列化,成员变量是list,无法解析泛型?

问题描述

jackson反序列化,成员变量是List,无法解析泛型
使用ObjectMapper.readValue无法正确解析出对象中List变量的泛型;但在Spring Controller中是正确的,想要了解spring是如何做到的

相关代码

javabean如下:

@ApiModel

@Data

public class ApplyRefundItemIBay {

@ApiModelProperty(value = "门诊流水号", required = true)

@NotBlank(message = "门诊流水号不得为空")

private String clinic_no;

@ApiModelProperty(value = "患者ID", required = true)

@NotBlank(message = "患者ID不得为空")

private String patient_id;

@ApiModelProperty(value = "患者姓名", required = false)

private String patient_name;

@ApiModelProperty(value = "申请退费人编号", required = true)

@NotBlank(message = "申请退费人编号不得为空")

private String apply_refund_per_id;

@ApiModelProperty(value = "申请退费人姓名", required = true)

@NotBlank(message = "申请退费人姓名不得为空")

private String apply_refund_per_name;

@ApiModelProperty(value = "申请退费科室编号", required = true)

@NotBlank(message = "申请退费科室编号不得为空")

private String apply_refund_dep_id;

@ApiModelProperty(value = "申请退费科室名称", required = false)

private String apply_refund_dep_name;

@ApiModelProperty(value = "申请退费项目列表",required = true)

@NotNull(message = "申请退费项目列表不允许为空")

@Size(min = 1,max =1000 )

@Valid

public List<ApplyRefundItemListPan> applyRefundItemListPans ;

}

json参数如下:

{

"applyRefundItemListPans": [

{

"advice_details_no": "",

"advice_item_code": "",

"advice_item_name": "",

"advice_no": "",

"audit_code": "",

"bill_code": "",

"drug_spec": "",

"fee_item_no": "",

"fee_no": "",

"hosp_area_id": "",

"hosp_id": "",

"insurance_code": "",

"insurance_name": "",

"item_code": "",

"item_name": "",

"item_type": "",

"price": 0,

"quantity": 0,

"repetition": 0,

"return_amount": 0,

"specs_code": "",

"total_amount": 0,

"unit": ""

}

],

"apply_refund_dep_id": "",

"apply_refund_dep_name": "",

"apply_refund_per_id": "",

"apply_refund_per_name": "",

"clinic_no": "",

"patient_id": "",

"patient_name": ""

}

其中applyRefundItemListPans变量为List类型,请问这种作为成员变量的泛型,无法使用JavaType或者TypeReference,如何解析?SpringMVC又是通过什么机制做到解析的?时间着急在SpringMVC源码中一时找不到答案


回答:

你这里没有泛型


回答:

代码方便列一下,我本地可以解析List里的内容


回答:

很遗憾,你一开始就把springmvc的实现方式淘汰了,他就是用的javaType,使用javaType或者是TypeReference,一般是类上有泛型,你这类上面没有泛型,直接readValue就能搞定

以上是 jackson反序列化,成员变量是list,无法解析泛型? 的全部内容, 来源链接: utcz.com/p/944920.html

回到顶部