Rapid JSON 간단 사용법

by digipine posted Aug 27, 2024
?

Shortcut

PrevPrev Article

NextNext Article

ESCClose

Larger Font Smaller Font Up Down Go comment Print

JSON 문자열을 객체로 변환하는 예제

  1. 라이브러리 포함: 먼저, rapidjson 헤더 파일을 포함해야 합니다.

    #include <rapidjson/document.h>
    #include <rapidjson/writer.h>
    #include <rapidjson/stringbuffer.h>
    
    
  2. JSON 문자열 정의: 변환할 JSON 문자열을 정의합니다.

    const char* json = "{\"project\":\"rapidjson\",\"stars\":10}";
    
  3. 문서 객체 생성 및 파싱: rapidjson::Document 객체를 생성하고 Parse 메소드를 사용하여 JSON 문자열을 파싱합니다.

    rapidjson::Document document;
    if (document.Parse(json).HasParseError()) {
        // 파싱 에러 처리
        std::cerr << "JSON parse error: " << document.GetParseError() << std::endl;
        return -1;
    }
    
  4. 데이터 접근: 파싱한 JSON 데이터를 객체처럼 접근할 수 있습니다.

    if (document.HasMember("project") && document["project"].IsString()) {
        std::cout << "Project: " << document["project"].GetString() << std::endl;
    }
    
    if (document.HasMember("stars") && document["stars"].IsInt()) {
        std::cout << "Stars: " << document["stars"].GetInt() << std::endl;
    }
    

전체 예제 코드

아래는 위의 절차를 모두 포함한 전체 예제 코드입니다.

 

이 예제 코드를 컴파일하고 실행하면 Project: rapidjsonStars: 10이 출력됩니다.

#include <iostream>
#include <rapidjson/document.h>

int main() {
    // JSON 문자열 정의
    const char* json = "{\"project\":\"rapidjson\",\"stars\":10}";

    // Document 객체 생성
    rapidjson::Document document;

    // JSON 문자열 파싱
    if (document.Parse(json).HasParseError()) {
        // 파싱 에러 처리
        std::cerr << "JSON parse error: " << document.GetParseError() << std::endl;
        return -1;
    }

    // 데이터 접근 및 출력
    if (document.HasMember("project") && document["project"].IsString()) {
        std::cout << "Project: " << document["project"].GetString() << std::endl;
    }

    if (document.HasMember("stars") && document["stars"].IsInt()) {
        std::cout << "Stars: " << document["stars"].GetInt() << std::endl;
    }

    return 0;
}

rapidjson은 매우 강력하고 유연한 라이브러리이므로, 다양한 JSON 데이터 구조를 처리할 수 있습니다. 더 복잡한 JSON 데이터를 처리하려면 Document 객체의 여러 메소드와 속성을 활용하면 됩니다.

TAG •