Restaurante La Strada

c++ jsoncpp 예제

Posted on

수년 동안 존재하는 도서관의 경우 JsonCpp는 의외로 문서화가 제대로 되지 않습니다. 매우 간단한 사용 예 또는 모든 클래스 및 메서드의 컴퓨터에서 생성된 목록을 찾을 수 있습니다. 소스의 최신 버전은 프로젝트의 하위 버전 리포지토리에서 사용할 수 있습니다: http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/ 빌드는 cmake 명령의 인수를 설정하여 구성할 수 있습니다. 예를 들어 CMAKE_BUILD_TYPE은 없음, 디버그, 릴리스, RelWithDebInfo, MinSizeRel 또는 범위로 설정할 수 있습니다. 또한 BUILD_SHARED_LIBS가 ON으로 설정된 경우 빌드/디버그/src/lib_json 폴더에 공유 라이브러리가 생성됩니다. 이 문서의 예제 코드는 정적 라이브러리 libjsoncpp.a를 사용할 수 있다고 가정합니다. 유닉스에서 빌드 디렉토리에 파일 src/lib_json/libjsoncpp.a가 생성됩니다. 포함 파일은 .에 있을 것입니다. /포함/json . 파일을 설치 (설치가 도움이 될 수 있습니다 확인), 이러한 기능을 사용하면 Json ::Value라는 이름의 Json ::Value의지도로 생각만큼 쉽게 사용하고 이해할 수 있습니다.

예를 들어 Json::Value 명명된 루트가 다음 JSON 개체에서 생성된다고 가정해 보겠습니다: {“num”: 1, “obj”: {“str”: “Hi” }}. 이 문서에서는 JsonCpp 도구 집합을 JSON 데이터를 읽고, 처리하고, 쓰는 데 사용할 수 있는 방법을 보여 주는 예제 프로젝트를 제공합니다. jsoncpp_demo.zip 아카이브에는 jsoncpp_demo.cpp라는 파일이 포함되어 있습니다. 소스 코드는 다음과 같이 제공됩니다: 프로젝트에jsoncpp_demo를 구축하기 위한 Makefile이 포함되어 있습니다. 이것은 JsonCpp 라이브러리 libjsoncpp.a가 /home/Matt/jsoncpp/lib 디렉토리에 위치할 것으로 예상합니다. 또한 필요한 헤더가 /home/Matt/jsoncpp/포함 디렉토리에 있을 것으로 예상합니다. 개발 시스템에서 데모를 빌드하려면 이러한 위치를 변경해야 합니다. 위의 코드는 JSON C++ 배열 예제이기도 합니다. 동적으로 크기의 배열에 벡터를 사용하고 있으며 JSON C++ arrayValue를 사용하여 JSON에서 목록을 추출합니다.

값의 형식은 type()을 호출하여 가져올 수 있습니다. 그러면 nullValue, intValue, uintValue, realValue, stringValue, 부울값, arrayValue 또는 objectValue일 수 있는 ValueType 열거형 형식의 값을 반환합니다. 예를 들어 루트[“second”].type()는 Json::uintValue를 반환합니다. JsonCpp는 작업하기에 좋지만 API 문서에는 더 많은 자습서가 필요합니다. 학습-jsoncpp및 REPL.it 예제에서 내 코드가 JSON C ++에 대한 자습서역할을 할 수 있기를 바랍니다. Github에서 소스 코드가 있는 학습-jsoncpp 프로젝트를 확인하여 JSONCPP를 사용하는 완전히 작동하는 예제를 볼 수 있습니다. 구문 분석이 성공적으로 완료되면 JSON::Value 개체를 통해 JSON 데이터에 액세스할 수 있습니다. 이렇게 하면 C++ 맵 표기화를 사용하여 JSON 속성에 액세스할 수 있습니다.