Java Json library jackson »ç¿ë¹ý
°³¿ä
Jackson Àº ÀÚ¹Ù¿ë json ¶óÀ̺귯¸®·Î Àß ¾Ë·ÁÁ® ÀÖÁö¸¸ Json »Ó¸¸ ¾Æ´Ï¶ó XML/YAML/CSV µî ´Ù¾çÇÑ Çü½ÄÀÇ µ¥ÀÌŸ¸¦ Áö¿øÇÏ´Â data-processing ÅøÀÌ´Ù.
½ºÆ®¸² ¹æ½ÄÀ̹ǷΠ¼Óµµ°¡ ºü¸£¸ç À¯¿¬ÇÏ¸ç ´Ù¾çÇÑ third party µ¥ÀÌŸ ŸÀÔÀ» Áö¿øÇϸç annotation ¹æ½ÄÀ¸·Î ¸ÞŸ µ¥ÀÌŸ¸¦ ±â¼úÇÒ ¼ö ÀÖÀ¸¹Ç·Î JSON ÀÇ ¾àÁ¡Áß ÇϳªÀÎ ¹®¼È¿Í µ¥ÀÌŸ validation ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
±¸¼º
core module
- Streaming("jackson-core") : defines low-level streaming API, and includes JSON-specific implementations
- Annotations ("jackson-annotations") : contains standard Jackson annotations
- Databind ("jackson-databind") :implements data-binding (and object serialization) support on streaming package; it depends both on streaming and annotations packages
»ç¿ë
maven ¼³Á¤
databind ´Â jackson-core, jackson-annotation ¿¡ ÀÇÁ¸¼ºÀÌ ÀÖÀ¸¹Ç·Î pom ÆÄÀÏ¿¡´Â databind ¸ðµâ¸¸ ±â¼úÇØÁÖ¸é µÈ´Ù.
POJO ¿Í »ç¿ë
https://github.com/FasterXML/jackson-databind/
com.fasterxml.jackson.databind.ObjectMapper ÀνºÅϽº »ý¼º
json µ¥ÀÌŸ¸¦ java object ·Î º¯È¯
File, URL, String ¹æ½ÄÀ¸·Î µ¥ÀÌŸ¸¦ Àоî¿Ã ¼ö ÀÖÀ½.
java object ¸¦ json À¸·Î º¯È¯
json À¸·Î º¯È¯½Ã °³ÇàÇÏ¿© Æ÷¸ËÆÃ
À§¿Í °°Àº json µ¥ÀÌŸ¸¦ ´ÙÀ½Ã³·³ º¸±â ÁÁ°Ô Ãâ·ÂÇÏ·Á¸é ObjectMapper.writerWithDefaultPrettyPrinter¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
Generic Collation/Tree Model ·Î »ç¿ë
Configurator
Annotation
@JsonIgnoreProperties
Å©°Ô 2°¡Áö ¿ëµµ°¡ ÀÖÀ¸¸ç ù ¹ø°´Â Serializer/Deserialize ½Ã Á¦¿Ü½Ãų ÇÁ·ÎÆÛƼ¸¦ ÁöÁ¤ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ÁöÁ¤Çϸé foo, bar´Â Á¦¿ÜµÈ´Ù. °³º° ÇÁ·ÎÆÛƼ¸¦ Á¦¿ÜÇÏ·Á¸é
@JsonIgnore annotationÀ» ÇÁ·ÎÆÛƼ¿¡ Àû¿ëÇÏ¸é µÈ´Ù.
@JsonProperty
getter/setter ÀÇ À̸§À» property ¿Í ´Ù¸¥ À̸§À» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÑ´Ù. Database ¸¦ Àڹ٠Ŭ·¡½º·Î ¸ÅÇÎÇϴµ¥ DBÀÇ Ä÷³¸íÀÌ ¾Ë±â ¾î·Á¿ï °æ¿ìµî¿¡ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½°ú °°Àº Å×À̺íÀÌ ÀÖÀ» °æ¿ì
´ÙÀ½°ú °°ÀÌ JsonProperty ¸¦ »ç¿ëÇϸé DB ÀÇ Ä÷³¸íÀ» º¯°æÇÏÁö ¾Ê¾Æµµ °¡µ¶¼ºÀ» ³ôÀÏ ¼ö ÀÖ´Ù.
json À¸·Î º¯È¯µÈ °á°ú
@JsonInclude
Serialize ½Ã µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î Àè½¼Àº °ªÀÇ À¯¹«¿Í »ó°ü¾øÀÌ ¹«Á¶°Ç serialize ÇÏ°Ô µÇÁö¸¸ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÒ °æ¿ì not null À̰ųª none empty ÀÏ °æ¿ì¿¡¸¸ serialize µÈ´Ù.