-
Jsoncpp 적용하기 (Visual Studio 2017) 방법1Programming/c++ 2021. 9. 14. 12:19728x90
필요한 파일 : jsoncpp.lib, include 폴더
jsoncpp.lib파일을 아직 빌드하지 않았다면 https://code-space.tistory.com/entry/Jsoncpp-%EB%B9%8C%EB%93%9C
위 과정을 먼저 진행해주세요~
jsoncpp open source에 있는 include 폴더 와 jsoncpp.lib 를 사용하여 프로젝트에 적용하겠습니다.
1. jsoncpp 에 있는 include 폴더와 jsoncpp.lib 파일을 적용하고자 하는 프로젝트에 복사해주세요.
2. 프로젝트 속성 > c/c++ > 일반 > 추가 포함 디렉터리
에 include폴더가 있는 경로를 추가해주세요.
상대경로, 절대경로 상관없지만 상대경로가 더 안전합니다.
3. 프로젝트 속성 > 링커 > 일반
에 jsoncpp.lib가 있는 경로를 추가해주세요.
이렇게 설정을 하고 솔루션 빌드를 누르면!!
실패가...!! 나옵니다.
jsoncpp.dll 파일도 프로젝트에 옮겨줘야 합니다!
저는 예전에 jsoncpp.dll 없이 사용했던거 같은데.. 다른 방법이였나 봅니다..
그 방법도 포스팅 해보도록 할께요~
4. jsoncpp.dll 파일을 적용하고자 하는 프로젝트의 실행파일이 생기는 곳에 추가해줍니다.
jsoncpp.dll파일은 jsoncpp open source를 사용해서 빌드하였을 때 bin폴더에 생성됩니다!
dll은 응용프로그램이 실행될 때 같이 물고 실행된다!
같은 경로에 두기 싫다면 프로젝트에 경로를 설정해주면된다~
dll이 있어서 lib 파일없어도 되는 거 같네요,,
jsoncpp github에 올라와있는 예제소스로 테스트 해보겠습니다.
#include <iostream> #include <string> #include <memory> //#include "..\JsonEX\include\json\json.h" //속성에서 설정안했다면 이렇게 include해도 됩니다 #include "json.h" //#pragma comment(lib, "jsoncpp.lib") //jsoncpp.lib가 없다 안보인다 이런식의 메시지가 뜨면 주석 풀어주세요. //#pragma warning(disable: 4996) int main() { const std::string rawJson = R"({"Age": 20, "Name": "colin"})"; const auto rawJsonLength = static_cast<int>(rawJson.length()); constexpr bool shouldUseOldWay = false; JSONCPP_STRING err; Json::Value root; if (shouldUseOldWay) { // 이렇게 사용하는 방식은 예전 방식으로 지금은 지원안하는거 같아요 /* Json::Reader reader; reader.parse(rawJson, root); */ } else { // 이 부분을 참고해서 사용하세요. Json::CharReaderBuilder builder; const std::unique_ptr<Json::CharReader> reader(builder.newCharReader()); if (!reader->parse(rawJson.c_str(), rawJson.c_str() + rawJsonLength, &root, &err)) { std::cout << "error" << std::endl; return EXIT_FAILURE; } } const std::string name = root["Name"].asString(); const int age = root["Age"].asInt(); std::cout << name << std::endl; std::cout << age << std::endl; return EXIT_SUCCESS; return 0; }
json data가 잘 파싱되어 결과가 나왔습니다.
728x90'Programming > c++' 카테고리의 다른 글
[c++] unique 함수 (0) 2022.08.01 [c++] std::accumulate 함수 vector sum (0) 2022.07.16 [c++] Visual Studio Code c++ 설정 (0) 2022.06.26 [c++] isdigit() 함수 (0) 2022.05.28 Jsoncpp 빌드 (0) 2021.09.13