일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 자바
- java
- tibero#티베로#이중화#failvover
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- Resource #
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- 국비지원JAVA
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- IntelliJ#인텔리제이#인텔리#단축키
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- 개발자#it도서#도메인#DDD#ddd
- 항해플러스#항해#항해플러스3기#회고
- Java#컴파일러#자바컴파일러#
- 쿼리스트링#쿼리문자열#바인딩
- 프로그래밍
- 국비지원#국비교육
- 자바#Java#배열예시#연습#기초다지기
- #
- db#데이터베이스#오라클#sql
- Java#정처기#비트연산자#정보처리기사
- spring#Spring#RequestBody#ResponseBody
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- #java#JAVA#프로그래밍#웹개발자
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- Java#java#메모리영역#클래스로더#가비지컬렉터
- Java#JAVA#매개변수
Archives
- Today
- Total
개린이 개발노트
Jackson 사용법 본문
728x90
Jackson 이란?
Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환하는데 사용할 수 있는 Java 라이브러리입니다.
Jackson Github - https://github.com/FasterXML/jackson
Jackson 특징
1.Stream API : 스트림 형식으로 데이터를 분석하고 생성하기 때문에 성능이 좋습니다.
2.Tree Model : XML의 DOM 처럼 Node 형태로 데이터를 다룰 수 있기 때문에 유연성이 좋습니다.
3.Data Binding : POJO 기반의 자바 객체들을 JSON으로 변환시킬 수 있습니다.
Maven 설정
jackson-databind 라이브러리는 jackson-core 및 jackson-annotation 라이브러리의 의존성을 포함하기 때문에 메이븐을 사용하는 경우 jackson-databind 라이브러리만 추가해주시면 됩니다.
1
2
3
4
5
|
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
|
cs |
Maven Repository : https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
객체를 JSON으로 변환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package com.tychejin.study.json;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample01 {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
User user = setUser();
try {
// 객체를 JSON 타입의 파일로 변환
mapper.writeValue(new File("c:\\user.json"), user);
// 객체를 JSON 타입의 String으로 변환
String jsonInString01 = mapper.writeValueAsString(user);
System.out.println(jsonInString01);
// 객체를 JSON 타입의 String으로 변환 및 정렬
String jsonInString02 = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user);
System.out.println(jsonInString02);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static User setUser() {
User user = new User();
user.setName("JSON");
user.setAge(10);
List<String> list = new ArrayList<String>();
list.add("JSON은 자바스크립트를 확장하여 만들어졌습니다.");
list.add("JSON은 자바스크립트 객체 표기법을 따릅니다.");
list.add("JSON은 사람과 기계가 모두 읽기 편하도록 고안되었습니다.");
list.add("JSON은 프로그래밍 언어와 운영체제에 독립적입니다.");
user.setMessages(list);
return user;
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package com.tychejin.study.json;
import java.util.List;
public class User {
private String name;
private int age;
private List<String> messages;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<String> getMessages() {
return messages;
}
public void setMessages(List<String> messages) {
this.messages = messages;
}
@Override
public String toString() {
String result = "";
result = "[name:"+ name + ",age:"+ age +",messages:"+ messages +"]";
return result;
}
}
|
cs |
JSON을 Java Object로 변환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package com.tychejin.study.json;
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample02 {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// JSON 타입의 파일을 객체로 변환
User user01 = mapper.readValue(new File("c:\\user.json"), User.class);
System.out.println(user01);
String jsonInString = "{\"name\":\"JSON\",\"age\":10,\"messages\":[\"JSON은 자바스크립트를 확장하여 만들어졌습니다.\",\"JSON은 자바스크립트 객체 표기법을 따릅니다.\",\"JSON은 사람과 기계가 모두 읽기 편하도록 고안되었습니다.\",\"JSON은 프로그래밍 언어와 운영체제에 독립적입니다.\"]}";
// JSON 타입의 String을 객체로 변환
User user02 = mapper.readValue(jsonInString, User.class);
System.out.println(user02);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
cs |
JSON 변환 (String, Map, List, JSONString, JSONObject, JSONArray) - https://tychejin.tistory.com/311
https://tychejin.tistory.com/134
728x90
'자바Java' 카테고리의 다른 글
주니어 자바 개발자를 위한 100가지 질문 (0) | 2023.05.31 |
---|---|
[Java] Gson 참조 (0) | 2023.05.23 |
[Jackson] TypeReference를 이용한 캐스팅 정보전달 (0) | 2023.05.03 |
[JSTL]<c:choose> <c:when> <c:otherwise> 사용 방법 (0) | 2023.04.28 |
람다식(람다와 스트림) (0) | 2023.03.28 |