일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 캡슐화
- REST API
- spring boot
- clean code
- 추상화
- 도메인 모델
- 스프링
- Refactor
- 객체지향의 사실과 오해
- JPA
- 스프링부트
- string
- JIT
- 책임
- 캐싱
- 자바
- Lombok
- 리팩토링
- 클린 코드
- 객체지향
- 쿼리 최적화
- 클린코드
- 재사용성
- Java
- 협력
- 객체
- 인터프리터
- SRP
- 캐시
- cache
- Today
- Total
GO SIWOO!
[Java] JSONObject & JSONArray & JSONParser 사용법과 json-simple 본문
[Java] JSONObject & JSONArray & JSONParser 사용법과 json-simple
gosiwoo 2023. 3. 7. 22:13📌 json-simple 특징
1. 내부적으로 JSON 데이터를 처리하기 위해 Map과 List를 사용합니다.
2. JSON 데이터를 구문 분석하고 JSON을 파일에 기록할 수 있습니다.
3. 타사 라이브러리에 대한 의존성이 없습니다.
4. 매우 가벼운 API이며 간단한 JSON 데이터를 처리하기 위해 적합합니다.
📌 build.gradle
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
📌 JSONObject 사용법
JSONObject 클래스를 사용해 json 객체를 다룰 수 있다.
JSONObject jsonObject = new JSONObject();
jsonObject.put("Name", "gosiwoo");
jsonObject.put("Phone", "010-1234-5678");
jsonObject.put("Adress", "Seoul");
System.out.println(jsonObject.toJSONString());
System.out.println(jsonObject.toString());
JSONObject 객체를 생성하고 put() 메서드를 사용해 데이터를 삽입할 수 있다.
toJSONString(), toString()을 통해서 문자열 데이터로 출력이 가능하다.
하지만 다음 출력 결과를 보면 Name, Phone, Adress key 값의 순서로 입력을 하였지만 순서와 관계없이 출력되는 모습을 볼 수 있다.
순서와 관계 없이 출력되는 이유는 삽입 순서를 보장하지 않는 HashMap을 상속받기 때문이다.
📌 JSONArray 사용법
JSONArray 클래스를 사용해 json 객체 배열을 다룰 수 있다.
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject_first = new JSONObject();
JSONObject jsonObject_second = new JSONObject();
jsonObject_first.put("Name", "gosiwoo");
jsonObject_first.put("Phone", "010-1234-5678");
jsonObject_first.put("Adress", "Seoul");
jsonObject_second.put("Name", "backsiwoo");
jsonObject_second.put("Phone", "010-5678-1234");
jsonObject_second.put("Adress", "Busan");
jsonArray.add(jsonObject_first);
jsonArray.add(jsonObject_second);
System.out.println(jsonArray.toJSONString());
JSONArray 객체에 JSONObject 객체 2개를 add() 메소드를 이용해 json 데이터를 넣어주었다.
JSONObject때와 마찬가지로 toJSONString() 메서드와 toString() 메서드 둘 다 사용 가능하며 출력 결과는 다음과 같다.
📌 JSONParser 사용법
json 형태의 문자열을 JSONParser의 parse() 메서드를 통해서 Object 객체로 담은 후 JSONObject로 다운캐스팅 해 변환한다.
JSONParser jsonParser = new JSONParser(); // JSONParser 객체 생성
try {
String jsonStr = "{\"Phone\":\"010-1234-5678\",\"Adress\":\"Seoul\",\"Name\":\"gosiwoo\"}";
Object obj = jsonParser.parse(jsonStr); // JSONParser 객체를 이용해여 JSON String 을 객체로 parse
JSONObject jsonObject = (JSONObject) obj; // Object 객체를 JSONObject 객체로 다운캐스팅
String phone = (String) jsonObject.get("Phone"); // JSONObject에서 Phone key 값으로 value 찾아오기
System.out.println("Phone value : " + phone);
} catch (org.json.simple.parser.ParseException e) {
e.printStackTrace();
}
위의 코드는 JSONParser 객체를 생성해서 JSON 형태의 String을 JSONObject로 바꾸고 Key 값을 통해 value를 가져온다.
아래의 출력 결과를 보여준다.
Parser를 할 때는 ParseException 예외 처리를 해주도록 하자.
'Develop > 자바(Java)' 카테고리의 다른 글
[Java] String, StringBuilder, StringBuffer의 차이 (0) | 2023.03.15 |
---|---|
[Java] 컴파일러(Compiler) & 인터프리터(Interpreter) 그리고 Java는 무슨언어인가? (1) | 2023.03.10 |
[Java] Java 컬렉션 프레임워크란 (Collection Framework) (0) | 2023.03.02 |
[Java] Java String Pool이란? (1) | 2023.02.27 |
[Java] JVM이란 무엇인가 & Java 컴파일 & JVM 내부 구조 (0) | 2023.02.23 |