개발 라이브러리 & 툴

C++ boost json array 생성 및 파싱 예제

하늘흐늘 2022. 5. 6. 15:29
반응형

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}

 

이 글이 조금 낯설다면 아래와 같은 기존 포스트 한번 읽어보시면 좋습니다.

 

 

C++ boost json용 라이브러리(boost.json)

boost 1.75 이전 버전은 json을 사용하기 위하여 property_tree를 사용하였습니다. 1.75 버전부터 json을 전문적으로 지원하는 boost.json라이브러리가 생겼습니다.   boost.json을 사용하는 Hello World입니..

linkmemo.tistory.com

 

 

C++ boost json 구조체와 json 문자열간 변환 예제

boost json라이브러리를 사용하면 구조체와 json문자열 간의 상호 변환이 간단합니다. 여기서는 간단한 변환 예를 살펴보며 사용법을 알아보겠습니다. 우선 아래와 같은 간단한 예로

linkmemo.tistory.com

 

반응형