VisualStudio.C++.C#/C . C++
C++ REST SDK. Json 형식 다루기 .
i.got.it
2020. 3. 22. 01:32
개요
C++ REST SDK 기반 Json 형식 만들기, Json 형식 데이터 에서 데이터 요소(키-값) 추출하기.
Json 형식 만들기
object 를 바로 json value 형식으로 변환.
#include <cpprest/json.h> // need for json
// Json 형식 {"op":"ping"} 만들기. 키-값 1개만 있는 초간단. 아래처럼 하면됨.
web::json::value obj = web::json::value::object();
obj[U("op")] = web::json::value::string(U("ping"));
std::wcout << obj.serialize() ;//시험출력결과 : {"op":"ping"}. 과거 obj.to_string() 함수는 폐기되었음.
Json 형식의 문자열을 Json value 형식으로 변환.
#include <cpprest/json.h>
// 입력 : Json 형식으로 기록된 문자열. std::string
// 반환 : web::json::value 형식.
web::json::value from_string(std::string const &input) {
utility::stringstream_t s;
std::wstring wstr;
wstr.assign(input.begin(), input.end()); // 입력 string -> wstring형변환.
s << wstr;
web::json::value ret = web::json::value::parse(s);// 입력받은 Json형식 문자열이 json::value 로 만들어짐.
return ret;
}
// 입력 : Json 형식으로 기록된 문자열. std::wstring
// 반환 : web::json::value 형식.
web::json::value from_string(std::wstring const &input) {
utility::stringstream_t s;
s << input;
web::json::value ret = web::json::value::parse(s);// 입력받은 Json형식 문자열이 json::value 로 만들어짐.
return ret;
}
Json 형식의 문자열에서 특정 키의 값 추출하기.
- 상황 : Json 형식의 문자열 { "ret_code": 0, "ret_msg": "OK", "ext_code": "", "ext_info": "" } 이 있고 이 문자열에서 특정키(예 : ret_msg ) 의 값을 추출하는것.
- 앞에서의 Json 문자열을 Json value 로 변환한 이후 value 에서 요소 추출하는것은 C++ REST SDK 에서 제공되긴 하므로 범용적인 활용에서는 사용해도 되나, 키의 값 1개 추출하려는 경우에는 문자열 찾기 자르기.. 등으로 직접 구현해도 됨.
- C++ REST SDK 에서는 이 기능의 함수 제공되지는 않으며 간단한 문자열 처리로 개발자가 어렵지 않게 구현가능하므로 SDK 에서는 별도로 만들어 제공하지는 않은것으로 보임.
- 구현코드 별도 정리 함.
첫 등록 : 2020.03.21
최종 수정 :
단축 주소 : https://igotit.tistory.com/2508