본문 바로가기
VisualStudio.C++.C#/C . C++

C++ REST SDK. Json 형식 다루기 .

by i.got.it 2020. 3. 22.

개요 

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 에서는 별도로 만들어 제공하지는 않은것으로 보임. 

- 구현코드 별도 정리 함. 

 

Json 문자열에서 키의 값 추출

개요. - Json 형식의 문자열에서 특정 키의 값을 추출하는 기능. - 이런 간단한 기능은 Json 전용 라이브러리 이용할것도 없이 직접 구현해서 활용하는게 더 편리. 연관 MFC C++. std::string ,std::wstring, CStr..

igotit.tistory.com

 

 

 

 

 

 

 

 

 


첫 등록 :  2020.03.21

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2508

 


 

 

 

 

 

 

 

 

 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5