2016-08-11 5 views
0

Dojo와 같은 매핑 라이브러리가 Map<String, Object>에서 pojo/bean으로 매핑 할 수 있습니까?Map <String, Object>에서 pojo/bean으로 매핑 할 수있는 Java 매핑 라이브러리는 무엇입니까?

내 특정 사용 케이스 ScriptObjectMirror들 nashorn 나오는지도하는 것입니다,하지만 난 ScriptObjectMirrorMap를 구현하기 때문에 더 높은 인터페이스에서 작동 할 수 있어야한다.

+0

어렵지 않을 것입니다. 물론 대상 클래스를 직접 정의해야합니다. –

+0

@JornVernee 라이브러리 또는 수동 매핑? 어느 쪽이든 쉽지만 수동 매핑은 노동 집약적이며 대부분의 기존 라이브러리는 구현이 지루할 수있는 고급 기능을 갖추고 있습니다. – kag0

답변

1

정확히 중복되지는 않지만 this question은 직접적인 대답을 제공합니다.

본질적으로 잭슨의 ObjectMapper은 일반적으로 알려진 JSON 기능 외에도 객체 - 객체 매핑에 사용할 수 있습니다. 아래의 코드는 이것이 두 줄로 어떻게 쉽게 이루어질 수 있는지 보여준다.

final ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper 
final MyPojo pojo = mapper.convertValue(map, MyPojo.class); 
1

orika mapper를 사용할 수 있습니다. 그것은 매우 유연하고 확장 가능합니다. 자세한 내용은 here을 참조하십시오.

user guide을 통해 읽으십시오.

FAQ에도 언급되어 있습니다.

나는 모음에 포함 된 객체를 매핑하거나 필드에 매핑, 또는 그 반대의

예 수 있습니다. (버전 1.3.0 현재) Bean을 매핑하려면 mapperFactory.classMap (...) 메소드를 사용하여 클래스 맵을 보통으로 정의하고 유형 중 하나를 할당 가능한 클래스 (또는 유형)로 전달합니다 맵 java.util.Map. 방정식의지도 측면에있는 필드 이름이 맵 키로 사용됩니다.

그런 시나리오에서 byDefault() 메소드를 사용하면 Bean 유형의 모든 특성이 특성 이름으로 맵 유형으로 맵핑됩니다.

빈에 대한 목록 또는 배열의 경우 맵에 대해 위에서 언급 한 것과 동일한 전략을 따르십시오. 대신 키 값을 제공하는 대신 빈 값을 저장해야하는 배열 또는 목록 내에 인덱스 값을 제공하십시오.