C++에서 JSON 파일을 읽고 쓰는 방법

C Eseo Json Pail Eul Ilg Go Sseuneun Bangbeob



C++는 JSON 데이터를 처리하기 위한 라이브러리 세트가 있는 다목적 언어입니다. JSON(JavaScript Object Notation)은 인간이 쉽게 쓰고 읽을 수 있고 기계가 쉽게 생성하고 구문 분석할 수 있는 데이터 교환을 위한 형식입니다. 웹 애플리케이션과 서버 간의 데이터 전송, 데이터 저장 및 파일 구성에 사용됩니다.

C++에서 JSON 파일을 읽고 쓰는 방법

JSON은 웹에서 구조화된 데이터를 저장하고 전송하는 데 선호되는 데이터 형식입니다. 가벼우므로 데이터 전송이 쉬워지고 데이터 전송 효율성과 처리가 향상됩니다. C++에서 rapidjson은 JSON을 구문 분석하고 생성하는 기능이 있는 라이브러리입니다. 이 라이브러리를 사용하면 JSON 데이터를 읽고 쓸 수 있을 뿐만 아니라 JSON 개체를 조작하고 검증할 수도 있습니다. 또한 스트리밍 방식으로 대규모 JSON 데이터 세트를 처리하는 기능도 지원합니다.







rapidjson을 사용하여 JSON 데이터를 읽고 쓰려면 rapidjson::Document 클래스가 사용됩니다. 이 클래스는 파일에서 JSON 데이터를 생성하고 구문 분석하기 위한 고급 API를 제공하며 데이터 조작도 가능하게 합니다.



C++에서 JSON 파일의 데이터를 읽는 예

다음은 rapidjson 라이브러리를 사용하여 C++에서 JSON 파일의 데이터를 읽는 예제 코드입니다.



#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'
#include 'rapidjson/filereadstream.h'
#include
#include

네임스페이스 rapidjson을 사용합니다.

정수 메인 ( )
{
// 열기 파일 ~을 위한 독서
파일 * fp = fopen ( 'example.json' , '아르 자형' ) ;

// FileReadStream을 사용하여
// 읽다 의 데이터 파일
문자 읽기 버퍼 [ 65536 ] ;
rapidjson::FileReadStream은 ( fp, 읽기 버퍼,
크기 ( 읽기 버퍼 ) ) ;

// JSON 데이터 구문 분석
// Document 객체 사용
rapidjson::문서 d;
d.ParseStream ( ~이다 ) ;

// 닫기 파일
fclose ( fp ) ;

// 데이터에 액세스 ~에 JSON 문서
표준::cout << [ '이름' ] .GetString ( ) << 표준::endl;
표준::cout << [ '나이' ] .틴티드 ( ) << 표준::endl;

반품 0 ;
}


fopen() 함수는 파일을 여는 데 사용됩니다. 헤더 파일 <<#include “rapidjson/filereadstream.h”>>은 json이라는 문자열로 파일의 데이터를 읽습니다. 문서 doc는 파일의 데이터를 보관하기 위해 생성됩니다. 문자열이 구문 분석되고 해당 오류가 확인됩니다. 오류가 발견되면 오류를 반환하고, 그렇지 않으면 문서를 사용하여 JSON 데이터에 액세스합니다.

C++에서 JSON 파일에 데이터를 쓰는 예

rapidjson 라이브러리는 Document 클래스를 생성하여 JSON 파일에 데이터를 쓰는 데 사용할 수 있습니다. 다음은 C++에서 JSON 파일에 데이터를 쓰는 예제 코드입니다.

#include 'rapidjson/document.h'
#include 'rapidjson/filereadstream.h'
#include 'rapidjson/filewritestream.h'
#include 'rapidjson/writer.h'

네임스페이스 rapidjson을 사용합니다.

정수 메인 ( )
{
// JSON 읽기 파일
파일 * fp
= fopen ( 'example.json' , 'rb' ) ;
문자 읽기 버퍼 [ 65536 ] ;
FileReadStream은 ( fp, readBuffer, 크기 ( 읽기 버퍼 ) ) ;
문서 d;
d.ParseStream ( ~이다 ) ;
fclose ( fp ) ;


& s = 디 [ '이름' ] ;
s.SetString ( '시몬' , d.GetAllocator ( ) ) ;

// JSON 작성 파일
파일 * fp2 = fopen ( 'example_modified.json' ,
'wb' ) ;
문자 쓰기 버퍼 [ 65536 ] ;
FileWriteStream 운영 체제 ( fp2, 쓰기 버퍼,
크기 ( writeBuffer ) ) ;
작가 < 파일쓰기스트림 > 작가 ( ) ;
d.수락 ( 작가 ) ;
fclose ( fp2 ) ;

반품 0 ;
}


이 프로그램은 표준 헤더 파일을 사용하여 rapidjson을 포함합니다. Document 객체는 JSON 파일의 데이터를 보유합니다. 회원의 이름과 나이가 JSON 객체에 추가됩니다. 파일에 데이터를 쓰기 위해 출력 파일 스트림이 생성되고 준비됩니다.


이름과 나이가 모두 파일에 기록되고 출력 터미널에 표시됩니다.

결론

JSON은 전송을 위한 데이터 크기를 줄여 데이터 전송 효율성과 처리를 향상시키는 데이터 형식입니다. rapidjson을 사용하여 JSON 데이터를 읽고 쓰려면 rapidjson::Document 클래스가 사용됩니다. 이 클래스는 파일에서 JSON 데이터를 생성하고 구문 분석하기 위한 고급 API를 제공하며 데이터 조작도 가능하게 합니다.