programing

C++: nlohmann json을 사용하여 파일에서 json 개체 읽기

newnotes 2023. 4. 5. 22:10
반응형

C++: nlohmann json을 사용하여 파일에서 json 개체 읽기

nlohmann의 json 라이브러리를 사용하여 c++의 json 객체를 조작하고 있습니다.마지막으로 파일에서 json 객체를 읽고 싶습니다. 예를 들어 다음과 같은 단순한 객체입니다.

{
"happy": true,
"pi": 3.141
}

어떻게 접근해야 할지 잘 모르겠어요.https://github.com/nlohmann 에서는 문자열 리터럴에서 직렬화를 해제하는 여러 방법이 제공되고 있지만, 파일 내에서 읽기 위해 확장하는 것은 간단한 일이 아닌 것 같습니다.이거 해본 사람 있어요?

모던 C++ 버전 3의 JSON용 2017-07-03 업데이트

버전 3.0 이후json::json(std::ifstream&)는 권장되지 않습니다.대신 다음을 사용해야 합니다.

std::ifstream ifs("test.json");
json jf = json::parse(ifs);

std::string str(R"({"json": "beta"})");
json js = json::parse(str);

nlohmann의 json 라이브러리를 사용하는 방법에 대한 자세한 내용은 nlohmann FAQ를 참조하십시오.


최신 C++ 버전 2용 JSON 업데이트

버전 2.0 이후부터.json::json()대신:

std::istringstream ifs("{\"json\": true}");
json j(ifs);

현대 C++ 버전1의 JSON에 대한 원래 답변

사용하다json::operator>>(std::istream&):

json j;
std::stringstream ifs("{\"json\": true}");
ifs >> j;

컨스트럭터json j(ifs)는 권장되지 않으며 버전 3.0.0에서는 삭제됩니다.버전 2.0.3 이후로는 다음과 같이 기술해야 합니다.

std::ifstream ifs("test.json");
json j = json::parse(ifs);

언급URL : https://stackoverflow.com/questions/33628250/c-reading-a-json-object-from-file-with-nlohmann-json

반응형