XML, Object, Json 변환 및 Xstream 사용 상세 정보

4073 단어 XMLObjectJsonXstream
XML, Object, Json 변환 및 Xstream 사용 상세 정보
1. Xstream의 특징:
Xstream 공식 설명을 참조하십시오.
  • 유연하고 사용하기 쉽다: 더욱 높은 차원에서 간단하고 유연하며 사용하기 쉬운 통일된 인터페이스를 제공하여 사용자는 프로젝트의 기본적인 세부 사항을 이해할 필요가 없다
  • 비추지 않아도 된다: 대부분의 대상은 비추지 않아도 서열화와 반서열화 작업을 할 수 있다
  • 고속 안정: 설계 시력 달성의 가장 중요한 지표는 해석 속도가 빠르고 메모리를 적게 차지하여 큰 대상 처리나 정보 흡수량에 대한 요구가 높은 시스템에 적용할 수 있도록 하는 것이다
  • 명확하고 이해하기 쉽다. 프로젝트는reflection 메커니즘을 이용하여 군더더기 없는 정보를 얻을 수 있는 XML 파일이다.생성된 XML 파일은 로컬 Java 정렬화 결과물보다 간결하고 형식이 명확하며 사용자가 읽기에 편리하다
  • 수정할 필요가 없습니다:private와final 형식을 포함한 모든 내부 필드를 완전히 서열화합니다.비공유 클래스와 내부 클래스를 지원하며, 클래스는 부족한 구조 함수가 없을 수 있습니다
  • 쉽게 통합: 특정한 인터페이스를 실현함으로써 Xstream은 다른 어떤 트리 구조와 직접 서열화와 반서열화 작업을 할 수 있다(XML 형식이 아니라)
  • 유연한 변환: 변환 정책은 사용자가 특수한 유형의 대상을 XML 형식으로 저장하는 방법을 사용자 정의할 수 있도록 사용자 정의할 수 있습니다
  • 오류 처리: XML 자료가 합법적이지 않아 이상이 발생하면 상세한 진단 정보를 제공하여 문제를 처리하는 데 도움을 줍니다
  •  2.XStream 클래스 초기화
    Xstream이 간단하다고 말하는 것은 통일된 입구를 제공하기 때문이다. 주요 클래스인 Xstream은 모든 항목의 입구점으로 사용된다.중요한 구성 요소를 통합하여 더욱 간단하고 사용하기 쉬운 API 작업을 제공합니다.
    우리는 다음 문장을 사용하여 초기화 작업을 할 수 있다.
    XStreamxstream = new XStream();
    기본적으로 XSTream은 Xpp3 라이브러리를 사용하고 XPP3는 실행 효율이 매우 높은 XML 전체 해석 실현이다.Xpp3 라이브러리에 의존하고 싶지 않으면 표준 JAXP DOM 해상도를 사용하여 다음 문장을 초기화할 수 있습니다.
    //XPP3 라이브러리 사용 안 함
    XStreamxstream = new XStream(new DomDriver());
    이 xstream 실례는 라인을 안전하게 하기 위해 여러 개의 라인을 호출하고 공유할 수 있습니다.참고com.thoughtworks.xstream.io.xml 패키지는 시스템이 다양한 표지 해상도를 제공하여 우리가 선택할 수 있도록 하는 것을 발견할 수 있다. 예를 들어Dom Driver, JDom Driver, Stax Driver 등이다.
    앞에서 Xstream이 Json에 대한 지원을 제공했다고 언급한 것은 Xstream에 두 개의 드라이버가 내장되어 있기 때문이다.
    1. Json Hierarchical StreamDriver: 다른 라이브러리에 의존하지 않고 obj->JSON만 실현
    2. JettisonMappedXmlDriver: Jettison 라이브러리에 의존하여 JSON->objorobj->JSON 실현
    두 드라이버는 같은 설정의 Object를 처리할 때 서로 다른 JSON 문자열을 얻을 수 있으며, Json Hierarchical Stream Driver는 홈페이지에서 말한 것처럼 더욱 간결하게 문자열을 얻을 수 있다.
    Json Hierarchical Stream Driver는 기본 출력 테이프 형식의 JSON 문자열로 구조에 빈칸이 있고 줄을 바꾸며 수식 방식을 제공하지 않습니다.
    3. 자주 사용하는 방법:
    
    xStream.toXML(object): XML、Json。
    xStream.toXML(obj, outputStream): XML、Json 。
    xStream.toXML(object, writer):  XML、Json 。
    xStream.fromXML(): XML、Json , File、InputStream、Reader、String、URL 。
    xStream.alias("news", News.class): 。
    xStream.useAttributeFor(News.class, "id"): id  News 。
    xStream.aliasField("other", BookShelf.class,"remark"): , BookShelf remark other。
    xStream.addImplicitCollection(BookShelf.class, "books"): 。
    xStream.aliasAttribute(" ", "name"): name, 。
    
    4. 인스턴스 1: 객체를 XML로 변환
    
    /** 
      *  Xml  
      * @param object  Xml  
      * @return String:Xml  
      */ 
      public static String convertObject2Xml(Object object) { 
       xStream=new XStream(); 
       xStream.alias("news", News.class);//  
       xStream.useAttributeFor(News.class, "id");// id News  
       return xStream.toXML(object);    
      } 
    
    5. 인스턴스 2: XML 이미지를 객체로 변환
    
    /** 
       *  Xml Java  
       * @param inputStream  Java inputStream 
       * @return String:Xml  
       */ 
      public static Object convertXml2Object(InputStream inputStream) { 
        xStream=new XStream(); 
        xStream.alias("news", News.class);//  
        xStream.useAttributeFor(News.class, "id");// id News  
        return xStream.fromXML(inputStream);// xml map 
      } 
    
    6. 인스턴스 3: 객체를 Json으로 변환
    
    /** 
       *  Json  
       * @param object  Json  
       * @return String:Json  
       */ 
      public static String convertObject2Json(Object object) {    
          xStream = new XStream(newJsonHierarchicalStreamDriver() { 
          publicHierarchicalStreamWriter createWriter(Writer out) { 
            //  
            return new JsonWriter(out, JsonWriter.DROP_ROOT_MODE); 
          } 
        });   
        return xStream.toXML(object);    
      } 
    
    
    읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

    좋은 웹페이지 즐겨찾기