java에서 json 형식을 담는 객체가 있을까?
별도 외부 라이브러리를 통해 사용할 수 있다.
dependency를 통해 라이브러리를 지원해도 되나, 라이브러리를 다운로드 받아 사용해도 된다.
아래와 같은 데이터를 만들고 싶을 경우 라이브러리를 추가했다면 JSONArray, JSONObject 객체를 사용할 수 있다.
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
|
import org.json.JSONArray;
import org.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class SampleJsonObject {
public static void main(String[] args) {
SampleJsonObject jo = new SampleJsonObject();
log.info("getJson() : {}",jo.getJson());
}
public JSONObject getJson() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("URL", "teck10.tistory.com");
jsonObject.put("KEY", "teck10");
JSONObject data = new JSONObject();
data.put("BANK_CD", "088");
data.put("SEARCH_ACCT_NO", "1231231234");
data.put("ACNM_NO", "123456");
data.put("ICHE_AMT", "0");
data.put("TRSC_SEQ_NO", "0000001");
JSONArray req_array = new JSONArray();
req_array.put(data);
jsonObject.put("REQ_DATA", req_array);
return jsonObject;
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
{
"KEY": "teck10",
"REQ_DATA": [
{
"ACNM_NO": "123456",
"BANK_CD": "088",
"ICHE_AMT": "0",
"SEARCH_ACCT_NO": "1231231234",
"TRSC_SEQ_NO": "0000001"
}
],
"URL": "teck10.tistory.com"
}
|
cs |
실제로 결과는 한줄로 나오는데, 한줄로 나오는걸 정렬하면 위처럼 나온다.
JSONObjent 는 { } 로
JSONArray는 [ ] 로 묶어 나뉜다.
JSONobject
String data = {"이름":"덩치","거주지":"서울"}; 이런식으로 해야될건데, 자바에서는 "를 못읽는다.
String data = "{\"이름\":\"덩치\",\"거주지\":\"서울\"}"; 이런식으로 해줘야 한다.
JSONObject obj = new JSONObject(data);
쓸때는 위와 같이 뽑아서 사용하면 된다.
요청사항이 있다면, {} 와 [] 같이 여러 형식이 존재할텐데, 묶는 방식에 따라 조합해 데이터를 put 하면 된다.
JsonArray
JsonArray안엔 json 데이터가 배열로 들어가는걸 뜻하는데,
JsonArray에 jsonObject 객체를 저장하거나, Json 데이터를 배열형태로 저장하는게 가능하다.
또한 JsonArray에 있는 데이터를 순서대로 꺼내서 출력도 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
String Json = "[{\"Product\" : \"Mouse\", \"Maker\":\"Samsung\", \"Price\":23000},"
+ "{\"Product\" : \"KeyBoard\", \"Maker\":\"LG\", \"Price\":12000},"
+ "{\"Product\":\"HDD\", \"Maker\":\"Western Digital\", \"Price\":156000}]";
logger.info("Json : {}", Json);
try{
String result = "";
JSONArray ja = new JSONArray(Json);
logger.info("JSONArray first : {}", ja);
for (int i = 0; i < ja.length(); i++){
JSONObject order = ja.getJSONObject(i);
result += "product: " + order.getString("Product") + ", maker: " + order.getString("Maker") +
", price: " + order.getInt("Price") + "\n";
logger.info("result : {}", result);
}
}
|
cs |
'IT기술 > JAVA' 카테고리의 다른 글
[JAVA] JVM 분석 도구, 성능 관리 (0) | 2023.05.17 |
---|---|
[JAVA] 기본형(primitive type) - 실수형(float, double) (0) | 2023.05.17 |
[JAVA] 리스트 List ArrayList 사용 방법 (0) | 2023.05.08 |
[JAVA] 배열 array (0) | 2023.05.08 |
[JAVA] 여러 데이터를 저장하는 객체, array, map, list, (0) | 2023.05.08 |