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;
}