본문 바로가기
[ Concept ]

[ Concept ] JSONParser 개념 및 사용법

by 환이s 2023. 7. 1.
728x90


오늘은 소셜 로그인 기능 구현할 때 사용한 JSONParser 객체에 대해서 포스팅을 해보겠습니다.

 

JSON 기법을 알아보시는 분들은 아래 포스팅을 참고해 보시면 도움이 되실 거 같습니다!

 

 

[ Concept ] JSON 이란?

JSON 이란? JSON은 "JavaScript Object Notation"의 약자로, 데이터 교환을 위해 사용되는 경량의 데이터 형식입니다. JSON은 텍스트 형식으로 구성되어 있으며, 사람과 기계 모두가 쉽게 읽고 쓸 수 있어서

drg2524.tistory.com

 


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 소셜 로그인 쪽 포스팅을 보시면 좀 더 이해하기 편할 수 있습니다!

 

선배 개발자님들처럼 저도 참고 블로그를 아래에 올려두겠습니다!

 

 

[ Team ] OAuth - NAVER API 로그인 구현

담당 기능 이전 포스팅까지 담당 기능으로 관리자 페이지 [회원관리] 기능 구현 포스팅을 했습니다. 해당 기능에 대해서 알아보시는 분들은 아래 링크 참고해 보시면 도움이 되실 거 같습니다. [

drg2524.tistory.com


마치며

 

오늘은 JSONParser 개념 및 사용법에 대해서 알아봤습니다.

다음 포스팅에서 뵙겠습니다.

 

728x90