jackson 역 직렬 화 대상

1162 단어 자바json
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 );
		}
	
	}

 

좋은 웹페이지 즐겨찾기