관리 메뉴

MuTa

TIL-rapidJson - 191225 본문

MFC-C++

TIL-rapidJson - 191225

MuTa 2019. 12. 25. 14:53

출처

https://moonpmj.tistory.com/11

 

rapidjson 사용하기

요즘 즐겨쓰는 json 라이브러리는 rapidjson 이다. 공식 사이트 http://rapidjson.org/ 주로 사용하는 나의 코드 std::string json; json 내용 { "hello": "world", "t": true , "f": false, "n": null, "i": 123,..

moonpmj.tistory.com

 

제시된 방법을 그대로 습득 한다.

 

 

보수적인 회사에 오래 나녔더니

.ini 파일을 이용 하여 파라메터 관리를 진행 했었다.

 

기존 사용한 모듈은 MFC 기반 함수를 사용 해서 좀 번거롭기도 하고

수정 및 보완 하는데 손이 많이 필요 했는데

요런 방식으로 보완 해도 될것 같다.

 

 

좀만 더 손에 익혀 보고 이용 해야 겠다.

 

 

 

 

json file

{
    "hello": "world",
    "t": true ,
    "f": false,
    "n": null,
    "i": 123,
    "pi": 3.1416,
    "a": [1, 2, 3, 4]
} 

Load block

using namespace std;
using namespace rapidjson;
int main()
{
    std::ifstream ifs;
    
    ifs.open("./hellowjson.json");
    if(!ifs.is_open())
    {
        std::cerr << "Load Fail! \n";
        return EXIT_FAILURE;
    }
    else
    {
        std::cout << "Load Ok!" << endl;
    }
    

    IStreamWrapper isw {ifs };

    Document doc {};
    doc.ParseStream(isw);

    StringBuffer buffer {};
    Writer<StringBuffer> writer {buffer};

    doc.Accept(writer);

    if(doc.HasParseError())
     return 0;

    

    std::cout << doc["hello"].GetString() << endl;
    std::cout << doc["t"].GetBool() << endl;
    std::cout << doc["f"].GetBool() << endl;
    std::cout << doc["n"].IsNull() << endl;
    std::cout <<doc["pi"].GetDouble() << endl;

    const rapidjson::Value& valueInfo = doc["a"];
    for (SizeType i =  0; i < valueInfo.Size(); i++)
    {
        std::cout << valueInfo[i].GetInt() << endl;
    }
        
    return 0;
    
    
}

'MFC-C++' 카테고리의 다른 글

MSVC 라이브러리 관리  (0) 2020.01.02
NuGet Package  (0) 2016.06.09
대용량 메모리 할당 Massive Memory Alloc  (0) 2016.05.27
C++ 11 핵심  (0) 2016.05.16
시스템 현재 코어 개수 구하기  (0) 2016.05.13