java의 잭슨이 json 문자열을 범용 List로 변환

1473 단어 jacksonjson
Jackson, 저는 Java와 Json 사이에서 서로 전환되는 가장 빠른 프레임워크라고 생각합니다. 물론 Google의 Gson도 괜찮지만 인터넷에서 누군가의 성능 테스트를 참조하면 Jackson이 좀 빠른 것 같습니다.
잭슨은 일반적인 자바빈과 제이슨 사이의 변환을 처리하는데 Object Mapper 대상의readValue와 writeValue AssString 두 가지 방법을 사용하면 실현할 수 있다.그러나 복잡한 유형의 Collection, 예를 들어 List < Your Bean > 을 바꾸려면 먼저 복잡한 유형을 일반적인 Collection Type으로 반서열화해야 한다.
ArrayList의 경우 ObjectMapper의 getTypeFactory () 를 사용합니다.constructParametricType(collectionClass, elementClasses);
HashMap이라면 ObjectMapper의 getTypeFactory().constructParametricType(HashMap.class,String.class, YourBean.class);

  public final ObjectMapper mapper = new ObjectMapper(); 
   
  public static void main(String[] args) throws Exception{ 
    JavaType javaType = getCollectionType(ArrayList.class, YourBean.class); 
    List<YourBean> lst = (List<YourBean>)mapper.readValue(jsonString, javaType); 
  }
  
    /**  
    *  Collection Type 
    * @param collectionClass  Collection  
    * @param elementClasses    
    * @return JavaType Java   
    * @since 1.0  
    */  
  public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {  
    return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);  
  }

이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기