자바에서는 json parser 로 jackson 을 많이 쓰네요. (라기 보단 이젠 논란없이 그냥 이것만 쓰는듯.)
제목처럼 jackson 은 Object (pure bean) 를 json 형태의 pretty text 로 serialize 할 때 자주 씁니다.
물론 json type으로 pretty text를 Object 로 deserialize 할 때도 당연히 쓰겠죠.
Object 를 serialize 할 때 종종 의도하지 않게
결과 text 가 나오는 경우가 있습니다.
예를 들어
class User { private String name; private String email; private int age; private String homepage; private List<education> education; private List<string> hobby; getter... }
위 User 라는 클래스를 객체로 생성한 후에 jackson 을 이용하여 serialize 할 경우에
위에 작성된 field 순서대로 되지 않을 수 있습니다.
일반적으로 꼬입니다.
그래서 만약 field 순대로 serialize 할 때 순서를 주고 싶거나,
field 를 원하는 순서대로 serialize 하고 싶다면.
jackson 의 JsonPropertyOrder annotation 을 사용해야합니다.
예를 들어 위 class 의 순서를 field 순서대로 하고 싶다면
@JsonPropertyOrder({"name", "email", "age", "homepage", "education", "hobby"})
위 와 같은 annotation 을 serialize 할 class 명 위에 작성해주어야 합니다.
덧) 참고로, User 의 field 중 참조하는 type 이 String 이나 primitive 가 아니라고 마찬가지 pure bean 이라면 참조되는 bean 의 각 field 도 위와 같이 동일하게 해줄 수 있습니다.
출처 : http://jackson.codehaus.org/1.7.3/javadoc/org/codehaus/jackson/annotate/JsonPropertyOrder.html
'Programming > JAVA' 카테고리의 다른 글
java : 문득 왜 로컬변수는 초기화를 안할까에 대한 생각. (0) | 2015.01.29 |
---|---|
java : label break 를 통한 반복문 제어 (0) | 2012.09.21 |
[java] DTO등 객체의 property에 손쉽게 data set하는 유틸이 있네요. (0) | 2012.09.11 |
java : 정규식 표현을 해야할 경우에는 정규식 표현을 사용하는 것이 좋습니다. :) (0) | 2012.02.21 |
java : POJO란? (0) | 2011.12.19 |