2016-06-27 2 views
0

Modern C++ (https://github.com/nlohmann/json) 용 json 파서 Json을 사용하고 있습니다. (내 함수에 전달)C++ nlohmann/json 런타임을 사용하여 json 값을 읽는 방법 json_pointers

auto v1 = j["https://stackoverflow.com/a/b/c"_json_pointer];

하지만 방법은 내가 JSON 포인터가 런타임에 정의되어있는 경우 값을 받고 가겠어요 : 나는 내가 JSON_Pointer와 JSON 값의 가치를 얻을 수 있다는 것을 알고?

std:string s1 = "https://stackoverflow.com/a/b/c"; 
auto v1 = j[s1]; // doesn't work 

"json_pointer"를 std :: string 할당 또는 s1 변수에 추가 할 수 없습니다. std :: string을 json_pointer로 변환하는 함수가 있습니까? 호출자는 json에 대해 아무것도 모르고 "json.hpp"헤더에 액세스 할 수 없습니다. 나는 또한 시도했다

std::string s1 = "https://stackoverflow.com/a/b/c"; 
json_pointer p1(s1); 

그러나 "json_pointer"클래스는 정의되지 않았다. 이 문제 외에도 필요한 모든 것을 수행하는 훌륭한 라이브러리입니다. TIA. 소스 코드에서

답변

2

봐 : json_pointer가 정의되지 않은 경우

inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t) 
{ 
    return nlohmann::json::json_pointer(s); 
} 

, 그럼 당신은 바로 네임 스페이스를 사용하고 있지 않습니다. 시도하십시오

using nlohmann::json::json_pointer; 
std::string s1 = "https://stackoverflow.com/a/b/c"; 
json_pointer p1(s1); 
+0

나는 그것이 시도하고 컴파일하지 않을 첫 번째 물건이라고 맹세합니다. 그냥 다시 시도하고 그것은 매력처럼 일했습니다. 신속하고 비판적인 응답에 감사드립니다. –

+0

문제 없습니다. 다음 번에 [MCVE] (https://stackoverflow.com/help/mcve)를 빌드하십시오. 문제가있는 시간의 절반은 처음부터 문제를 풀어서 해결합니다. – Taywee

관련 문제