오늘은 자바(JAVA)에서 JSON 만들기 및 JSON 데이터 출력에 대해 포스팅 하려고 합니다.
자바(JAVA)에서 JSON데이터를 만드는 이유는 API에 데이터를 JSON 형태로
전달하거나 AJAX로 view에 데이터를 전달하기 위해 사용합니다.
자바(JAVA)에서 JSON 데이터를 만드는 것은 여러가지가 있지만
오늘은 jackson lib를 사용하여 내용을 진행하도록 하겠습니다.
저는 Spring Framework에서 진행했기 때문에
pom.xml에서 dependency하여 lib를 import를 했습니다.
Spring Framework에서 하지 않으시는 분들은 별도로 jackson lib를 다운받아서 import해서
사용하시기 바랍니다.
// pom.xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
먼저 저는 JsonVo.java를 만들어서 사용자 정보에 대한 vo를 생성했습니다.
json 데이터를 만드는 데 있어서 꼭 vo를 이용하지는 않으셔도 됩니다.
아래 소스와 같이 String type과 List type으로 구성된 JsonVo를 만들었습니다.
public class JsonVo {
String user_id;
String user_name;
String phone;
List<String> hobby;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<String> getHobby() {
return hobby;
}
public void setHobby(List<String> hobby) {
this.hobby = hobby;
}
}
앞전에 만든 JsonVo를 객체 생성하여 사용자 정보를 입력했습니다.
Vo를 기준으로 key, value 형태의 json형태로 만든다면 new ObjectMapper().writeValueAsString(data);에
data를 Vo만 넣어줘도 됩니다. 특정 key를 따로 만들고 싶으신 경우에는
Map을 사용하여 data.put("key","value") 형태로 json에 입력할 데이터를 구성할 수 있습니다.
Map<String, Object> data = new HashMap<String, Object>();
data.put("vo",jsonvo);
package com.example.demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@SpringBootApplication
public class JsonApplication {
public static void main(String[] args) {
JsonVo jsonvo = new JsonVo();
jsonvo.setUser_id("testuser1");
jsonvo.setUser_name("철수");
jsonvo.setPhone("010-0000-1111");
List<String> hobby = new ArrayList<String>();
hobby.add("배드민턴");
hobby.add("영화보기");
hobby.add("여행");
jsonvo.setHobby(hobby);
Map<String, Object> data = new HashMap<String, Object>();
data.put("vo", jsonvo);
try {
String json;
json = new ObjectMapper().writeValueAsString(data);
System.out.println("json : " + json);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
new ObjectMapper().writeValueAsString(data);가 String Type이기 때문에
System.out.println으로 출력하면 아래 내용과 같이 입력한 데이터가
JSON형태로 출력된 것을 확인할 수 있습니다.
json : {"vo":{"user_id":"testuser1","user_name":"철수","phone":"010-0000-1111","hobby":["배드민턴","영화보기","여행"]}}
지금까지 자바(JAVA)에서 JSON 만들기 및 JSON 데이터 출력에 대한 포스팅이였습니다.
'Develope > JAVA' 카테고리의 다른 글
[JAVA] List 합집합, 교집합, 차집합 구하기 (with Value Object) (2) | 2024.04.18 |
---|---|
[LDAP] Unbalanced parenthesis; remaining name 에러 해결 방법 (0) | 2021.07.08 |
[JAVA] 이클립스(Eclipse) 프로젝트에 라이브러리(lib) 추가하는 방법 (0) | 2019.08.14 |
[JAVA] exe 파일 실행 (0) | 2019.06.10 |
[LDAP] PartialResultException 해결책 (2) | 2019.06.04 |
오늘은 자바(JAVA)에서 JSON 만들기 및 JSON 데이터 출력에 대해 포스팅 하려고 합니다.
자바(JAVA)에서 JSON데이터를 만드는 이유는 API에 데이터를 JSON 형태로
전달하거나 AJAX로 view에 데이터를 전달하기 위해 사용합니다.
자바(JAVA)에서 JSON 데이터를 만드는 것은 여러가지가 있지만
오늘은 jackson lib를 사용하여 내용을 진행하도록 하겠습니다.
저는 Spring Framework에서 진행했기 때문에
pom.xml에서 dependency하여 lib를 import를 했습니다.
Spring Framework에서 하지 않으시는 분들은 별도로 jackson lib를 다운받아서 import해서
사용하시기 바랍니다.
// pom.xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
먼저 저는 JsonVo.java를 만들어서 사용자 정보에 대한 vo를 생성했습니다.
json 데이터를 만드는 데 있어서 꼭 vo를 이용하지는 않으셔도 됩니다.
아래 소스와 같이 String type과 List type으로 구성된 JsonVo를 만들었습니다.
public class JsonVo {
String user_id;
String user_name;
String phone;
List<String> hobby;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<String> getHobby() {
return hobby;
}
public void setHobby(List<String> hobby) {
this.hobby = hobby;
}
}
앞전에 만든 JsonVo를 객체 생성하여 사용자 정보를 입력했습니다.
Vo를 기준으로 key, value 형태의 json형태로 만든다면 new ObjectMapper().writeValueAsString(data);에
data를 Vo만 넣어줘도 됩니다. 특정 key를 따로 만들고 싶으신 경우에는
Map을 사용하여 data.put("key","value") 형태로 json에 입력할 데이터를 구성할 수 있습니다.
Map<String, Object> data = new HashMap<String, Object>();
data.put("vo",jsonvo);
package com.example.demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@SpringBootApplication
public class JsonApplication {
public static void main(String[] args) {
JsonVo jsonvo = new JsonVo();
jsonvo.setUser_id("testuser1");
jsonvo.setUser_name("철수");
jsonvo.setPhone("010-0000-1111");
List<String> hobby = new ArrayList<String>();
hobby.add("배드민턴");
hobby.add("영화보기");
hobby.add("여행");
jsonvo.setHobby(hobby);
Map<String, Object> data = new HashMap<String, Object>();
data.put("vo", jsonvo);
try {
String json;
json = new ObjectMapper().writeValueAsString(data);
System.out.println("json : " + json);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
new ObjectMapper().writeValueAsString(data);가 String Type이기 때문에
System.out.println으로 출력하면 아래 내용과 같이 입력한 데이터가
JSON형태로 출력된 것을 확인할 수 있습니다.
json : {"vo":{"user_id":"testuser1","user_name":"철수","phone":"010-0000-1111","hobby":["배드민턴","영화보기","여행"]}}
지금까지 자바(JAVA)에서 JSON 만들기 및 JSON 데이터 출력에 대한 포스팅이였습니다.
'Develope > JAVA' 카테고리의 다른 글
[JAVA] List 합집합, 교집합, 차집합 구하기 (with Value Object) (2) | 2024.04.18 |
---|---|
[LDAP] Unbalanced parenthesis; remaining name 에러 해결 방법 (0) | 2021.07.08 |
[JAVA] 이클립스(Eclipse) 프로젝트에 라이브러리(lib) 추가하는 방법 (0) | 2019.08.14 |
[JAVA] exe 파일 실행 (0) | 2019.06.10 |
[LDAP] PartialResultException 해결책 (2) | 2019.06.04 |