공식 홈페이지 : https://rapidjson.org/
사용 이유 : 담당하는 프로젝트에서 구조체를 Binary로 통짜 파일 저장하던 방식을 사용했는데, 잦은 구조 변화로 인해 Json으로 저장하는게 더 낫다는 판단, C++에서 사용할 수 있는 Json 라이브러리를 찾아서 기록으로 남김.
각 헤더파일의 개념
allocators.h : 메모리 블록의 할당, 크기 조절 및 해제
cursorstreamwrapper.h : 오류가 발생했을 때 위치를 계산하기 위한 Cursor Stream Wrapper 제공
document.h : rapidjson을 사용할 때 가장 기본이 되는 Document(필수)
encodedstream.h : 템플릿 타입으로 스트림과 암호화/복호화 클래스를 받는 Wrapper 클래스 제공
encodings.h : 입/출력 스트림의 Encoding과 Decoding을 지원하는 클래스 제공
filereadstream : fread()를 활용해 받은 입력을 위한 파일 바이트 스트림 클래스 제공
filewritestream : fwrite()를 활용한 출력을 위한 C 파일 시스템 Wrapper 클래스 제공
memorystream : 메모리 내 입력 바이트 스트팀. 주로 EncodeInputStream/AutoUTFInputStream에 의해 랩핑됨.
rapidjson.h
C++ -> Json
다음과 같이 간략히 나타낸 플레이어 구조가 있다고 할 때 Json으로 변환하는 것은 다음 GetJson()와 같이 멤버 변수에 대해 일일히 어떻게 저장될지 작성해주면 된다.
그리고 해당 함수를 호출하기 전까진 다음과 같다.
'게임 > 라이브러리' 카테고리의 다른 글
Recast & Detour (1) | 2021.11.11 |
---|---|
flatbuffer (0) | 2021.10.23 |
glog (0) | 2021.08.29 |