자바객체를 직렬화하려면 흔히 어떻게 하는 방법이 있을까요?
오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요.
전 dW에 번역글이 올라와서 알게 된 XStream이 있는데 정말 몇줄로 자바객체를 XML로 직렬화 시켜주는 군요.

[dW] XStream으로 자바 객체를 XML로 직렬화하기

이곳을 참조하면, 이클립스 프로젝트에서 클래스를 생성해서 단 몇줄로 자바객체를 XML로 직렬화하는 방법이 나와있습니다. 친절하게 이클립스의 스크린샷까지..

XStream 사이트에 가보면 제일 첫 화면에 보이는

"XStream" is a simple library to serialize objects to XML and back again.

정말 심플한 라이브러리일까? 한번 소스를 봐보면..

Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);


이렇게 대략 프로그래밍을 하면 XML결과는..(물론 Person 객체가 존재해야겠지요)

<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>

XStream을 사용하면 XML 객체를 직렬화 하는 방법도 있고, 역직렬화하는 방법(XML을 읽어서 프로그래밍하고싶을때 사용한다면..)도 있고
기본적으로 역직렬화를 하다보면 XStream방식으로 "
com.thoughtworks.xstream." element 이름으로 나오는 경우가 있는데 이때는 alias를 줘서 원하는 방식으로 바꾸는 방법도 있고, 또 annotation방법으로 편하게 줄 수도 있군요.

대충 예제를 보니 사용하기도 쉬운것 같습니다. 직렬화할 일이 있다면 써보는게 좋을 것 같군요~
 
  1. seattle
    2008/05/22 13:55 [Edit/Del] [Reply]
    한동안 블로그에 글이 뜸해서 궁금했었는데 열공중이셨군요. 화이팅~~
  2. 2008/05/23 10:46 [Edit/Del] [Reply]
    오호... 객체 내의 객체까지 직렬화가 가능하네요.
    음... 근데 Serializable과 관계없다면 텍스트 정보(숫자/문자열)만 직렬화가 가능한 듯 하네요.

    열공하시느라 바쁘신가보네요 ^^
  3. iolo
    2008/05/23 13:45 [Edit/Del] [Reply]
    간단하게 쓰기엔 꽤 편한데... 제대로 쓸려구 하면... 역시 복잡해진다는...-.-

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret