logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

Rapid JSON 간단 사용법

by digipine posted Aug 27, 2024
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

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 •

List of Articles
No. Subject Author Date Views
55 Remove all .git files, recursively digipine 2021.11.26 2991
» Rapid JSON 간단 사용법 digipine 2024.08.27 9933
53 QCAD 1.1 한국 최초의 2D CAD 소프트웨어 file digipine 2017.11.01 3710
52 Python Slack 메시지 발송하는 예제 digipine 2024.08.27 4084
51 Python email 보내는 예제 코드 digipine 2024.08.27 3299
50 Photoshop CC 2018 한글 영문 변환 언어팩, 포토샵 언어변경 file 엉뚱도마뱀 2018.07.04 11117
49 Phabricator 설치 가이드 우분투 16.04 기준 digipine 2017.11.02 13959
48 Phabricator 설치 가이드 우분투 12.04 기준 digipine 2017.11.02 4149
47 Phabricator Ubuntu Installation Guide digipine 2022.01.26 4715
46 OpenSSL Build for Windows digipine 2024.08.30 8886
45 OpenAL 사용법 정리 1 digipine 2017.11.01 6363
44 OBS Studio for Http Interface EXE lizard2019 2023.02.15 3508
43 NMEA-0183을 이용한 GPS 애플리케이션 제작 digipine 2017.10.28 3189
42 NAT 상태에서 P2P 통신하는 방법 digipine 2024.08.08 3101
41 mongoose 3.8 싱글 파일 소스 코드 file digipine 2020.09.01 2766
40 MongoDB 설치 및 C 개발 도구 설정 1 digipine 2020.09.03 2889
39 MacOS 10.12.2 (OSX) 보안 취약점 공격 코드 2 file digipine 2017.11.02 4120
38 MacOS 10.12.2 (OSX) 보안 취약점 공격 코드 digipine 2017.11.02 3645
37 MacOS 10.12.2 (OSX) 보안 취약점 공격 기초 digipine 2017.11.02 3835
36 MacOS 10.12.2 (OSX) KERNEL DEBUGGING file digipine 2017.11.02 12837
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6