jackson反序列化对象

Jackson解析json字符串是区分大小写的,如果对应的字段首字母为大写或者不好设置对应的类型,写出的get方法是获取不到json值的,那么这时候就需要添加@JsonProperty("name")注解来标注反序列化的是哪个字段。

如果反序列化的对象中包含对象或者集合,比如说Map,List等,这时候就需要自定义反序列化程序,代码如下所示:

// 对象get方法
Class<?> retType = method.getReturnType(); 
// 是集合对象
if ( Collection.class.isAssignableFrom(retType) )
	{
	Type genRetType = method.getGenericReturnType();
	ParameterizedType pType = (ParameterizedType)genRetType;
	Class<?> pTypeClazz = (Class<?>) pType.getActualTypeArguments()[0];
	Object childPojo = objectMapper.convertValue(rowMap,pTypeClazz);

	try
		{
		Collection<Object> vals = (Collection<Object>) method.invoke(pojo);
		vals.add(childPojo);
		}
	catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex)
		{
		throw new IllegalStateException("Unable to invoke method annotated with" + idMethod );
		}
	
	}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值