오늘은 소셜 로그인 기능 구현할 때 사용한 JSONParser 객체에 대해서 포스팅을 해보겠습니다.
JSON 기법을 알아보시는 분들은 아래 포스팅을 참고해 보시면 도움이 되실 거 같습니다!
JSONParser 이란?
JSONParser는 JSON 형식의 문자열을 파싱 하고, 그 결과로 JSON 객체 또는 JSON 배열을 생성하는 라이브러리나 클래스입니다.
JSONParser를 사용하면 JSON 데이터를 구조화된 형태로 읽고, 필요한 정보를 추출할 수 있습니다.
현재 팀 프로젝트에서 사용된 예시를 잠깐 확인해 보자면
@RequestMapping(value = "/callbackNaver" , method = {RequestMethod.GET,RequestMethod.POST})
public String callbackNaver(Model model,@RequestParam String code, @RequestParam String state, HttpSession session) throws IOException, ParseException {
OAuth2AccessToken oauthToken = naverLoginBO.getAccessToken(session, code, state);
String apiResult = naverLoginBO.getUserProfile(oauthToken);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObj;
jsonObj = (JSONObject) jsonParser.parse(apiResult);
JSONObject response_obj = (JSONObject) jsonObj.get("response");
//프로필 조회
String nickname = (String)response_obj.get("nickname");
String id = (String) response_obj.get("id");
String email = (String) response_obj.get("email");
String name = (String) response_obj.get("name");
JSONParser를 사용해서 JSON 데이터를 추출하는 방법으로 코드를 구현했습니다.
JSONParser는 대부분의 프로그래밍 언어에서 제공되며, JSON 데이터를 처리하는 데 사용됩니다.
JSONParser 주요 개념 및 기능
다음으로 JSONParser의 주요 개념과 기능에 대해서 알아봅시다.
1. 파싱(Parsing) :
JSON 데이터는 일련의 중괄호({})와 대괄호([])로 구성되어 있습니다.
JSONParser는 이러한 구조를 읽고 해석하여 프로그래밍 언어에서 사용할 수 있는 형태로 변환합니다.
파싱은 JSON 데이터를 읽고 구문을 분석하여 JSON 객체나 배열로 변환하는 과정을 말합니다.
2. JSON 객체(Object) :
JSON 데이터에서 중괄호({})로 둘러싸인 key(키)-value(값)의 집합을 나타냅니다.
JSON 객체는 중괄호 안에 여러 개의 key(키)-value(값)이 있을 수 있으며, 각각의 key와 value는 콜론(:)으로 구분됩니다.
JSONParser를 사용하여 JSON 데이터를 파싱 하여 객체로 변환됩니다.
3. JSON 배열(Array) :
JSON 데이터에서 대괄호([])로 둘러싸인 value의 순서화된 목록을 나타냅니다.
JSON 배열은 대괄호([]) 안에 여러 개의 value를 콤마(,)로 구분되어 있습니다.
JSONParser를 사용하여 JSON 데이터를 파싱 하면 배열로 변환됩니다.
4. JSON 값(Value) :
JSON 데이터에서 사용되는 실제 값들을 나타냅니다.
값은 String, Integer, boolean, null, JSON 객체 또는 배열일 수 있습니다.
JSONParser를 사용하여 JSON 데이터를 파싱 하면 값으로 변환됩니다.
JSONParser를 사용하여 JSON 데이터를 파싱 하면, 프로그래밍 언어에서 쉽게 조작하고 검색할 수 있는 구조로 변환됩니다.
이를 통해 웹 애플리케이션에서 API 호출 결과, 데이터 베이스에서 가져온 데이터 등 다양한 형태의 JSON 데이터를 처리할 수 있습니다.
다음은 간단한 예제 코드로 알아봅시다.
JSONParser 사용법
다음 예제는 JSON 형식의 문자열을 파싱 하여 JSON 객체 또는 배열을 생성하고 필요한 정부를 추출합니다.
JSONParser를 사용하려면 라이브러리를 추가해야 합니다.
<!--JSON-->
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import org.json.JSONException;
public class JSONParserExample {
public static void main(String[] args) {
// JSON 형식의 문자열
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try {
// JSON 문자열을 파싱하여 JSON 객체 생성
JSONObject jsonObject = new JSONObject(jsonString);
// JSON 객체에서 필드 값 추출
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String city = jsonObject.getString("city");
// 추출한 필드 값 출력
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
위 코드를 확인해 보면 JSON 형식의 문자열 'jsonString'을 파싱 하여 'JSONObject'를 생성합니다.
'JSONObject'는 JSON 데이터를 표현하는 데 사용되는 클래스입니다.
'JSONObject'에서 'getString', 'getInt'와 같은 메서드를 사용하여 필요한 정보를 추출합니다.
출력 결과
Name: John
Age: 30
City: New York
예제로는 간단한 JSON 문자열을 사용하였지만, 복잡한 JSON 데이터를 파싱하고 필요한 정보를 추출하는 데에도 동일한 원리를 적용할 수 있습니다.
JSONParser는 JSON 데이터를 구문 분석하여 프로그래밍 언어에서 활용하기 쉬운 형태로 변환하는 유용한 도구로 알고 계시면 될 거 같습니다.
실제 JSONParser 사용한 코드인 OAuth2.0 소셜 로그인 쪽 포스팅을 보시면 좀 더 이해하기 편할 수 있습니다!
선배 개발자님들처럼 저도 참고 블로그를 아래에 올려두겠습니다!
마치며
오늘은 JSONParser 개념 및 사용법에 대해서 알아봤습니다.
다음 포스팅에서 뵙겠습니다.
'[ Concept ]' 카테고리의 다른 글
[ Concept ] JWT Token - 개념 및 간단 예제 (1) | 2023.07.10 |
---|---|
[ Concept ] Git - 자주 사용하는 Git 명령어 모음 (0) | 2023.07.05 |
[ Concept ] DTO와 VO의 차이점 (0) | 2023.06.22 |
[ Concept] Logger의 개념 (0) | 2023.06.18 |
[ Concept ] Authentication 객체 (0) | 2023.05.31 |