반응형
boost json라이브러리를 사용할 때 json array를 생성하거나 파싱하는 예제입니다. 사용법은 예제가 간단하게 되어 있는 관계로 예제를 이해하시면 됩니다.
#include <iostream>
#include <boost/json.hpp>
using namespace std;
using namespace boost;
int main(int argc, char* argv[])
{
json::value jv1 = {
{ "Hello", "World1" }
};
json::value jv2 = {
{ "Hello", "World2" }
};
json::object jo1;
jo1["test1"] = jv1;
jo1["test2"] = jv2;
std::string str1 = json::serialize(jo1);
cout << "Sample 01:..." << endl;
cout << "----------------------------------------" << endl;
cout << str1 << endl << endl;
json::array arr;
arr.push_back(jv1);
arr.push_back(jv2);
std::string str2 = json::serialize(arr);
cout << "Sample 02:..." << endl;
cout << "----------------------------------------" << endl;
cout << str2 << endl << endl;
json::error_code ec;
json::value jv = json::parse("[{\"id\":1}, {\"id\":2}, {\"id\":3}]", ec);
if (ec)
{
cout << ec.message() << endl;
}
json::array& array = jv.as_array();
cout << "Sample 03:..." << endl;
cout << "----------------------------------------" << endl;
for (json::value& entry : array)
{
std::string str3 = serialize(entry);
cout << str3 << endl;
}
return 0;
}
실행 결과는 아래와 같습니다.
Sample 01:...
----------------------------------------
{"test1":{"Hello":"World1"},"test2":{"Hello":"World2"}}
Sample 02:...
----------------------------------------
[{"Hello":"World1"},{"Hello":"World2"}]
Sample 03:...
----------------------------------------
{"id":1}
{"id":2}
{"id":3}
이 글이 조금 낯설다면 아래와 같은 기존 포스트 한번 읽어보시면 좋습니다.
반응형
'개발 라이브러리 & 툴' 카테고리의 다른 글
MS 비동기 에이전트 라이브러리 소개: #2 Hello World (0) | 2021.12.25 |
---|---|
MS 비동기 에이전트 라이브러리 소개: #1 개념 (0) | 2021.12.24 |
비주얼스튜디오(Visual Studio) 솔루션(*.sln) 커맨드라인 빌드 응용 (0) | 2021.11.30 |
C++ boost json 구조체와 json 문자열간 변환 예제 (5) | 2021.11.21 |
[MongoDB] C/C++ BSON 한글 문자열 입출력 (0) | 2021.11.20 |
boost locale을 이용한 C++에서의 Multi Byte와 UTF8간의 문자열 변환 (0) | 2021.11.19 |
[MongoDB] Mongo C/C++ Driver 관련 자료 (0) | 2021.11.10 |
boost asio address from_string 사용시 주의할 점 (0) | 2021.10.25 |