JSON 용 부스트 ptree에 대해 모르겠다. 나는 그것을 시도했다. 그러나 그것은 매우 clunky ... 것처럼 보였다. 여기
는 성령으로 만든 RFC에 따라 간단한 JSON 파서입니다 :
https://github.com/sehe/spirit-v2-json/tree/q21356666
당신은
test.cpp
#include <vector>
#include "json.hpp"
struct X {
static X from_json(JSON::Value const& v);
std::string var1;
double var2;
};
int main()
{
auto doc = as_object(JSON::parse(
"{\n"
" // some values\n"
" \"mykey\": [\n"
" {\n"
" \"var1\": \"value1_str\",\n"
" \"var2\" : 3.14\n"
" }\n"
" ]\n"
" // some other values\n"
"}\n"
));
if (doc.has_key("mykey"))
{
X data = X::from_json(doc["mykey"]);
std::cout << "X.var1: " << data.var1 << "\n";
std::cout << "X.var2: " << data.var2 << "\n";
}
std::cout << "doc: " << doc << "\n";
std::cout << "doc[\"mykey\"]: " << doc["mykey"] << "\n";
}
X X::from_json(JSON::Value const& v)
{
X result;
auto& o = as_object(as_array(v)[0]);
result.var1 = as_string(o["var1"]);
result.var2 = as_double(o["var2"]);
return result;
}
출력처럼 사용 사례에 사용할 수
:이
X.var1: value1_str
X.var2: 3.14
doc: {"mykey":[{"var1":"value1_str","var2":3.14}]}
doc["mykey"]: [{"var1":"value1_str","var2":3.14}]
주위에 다른 json 라이브러리가 있습니다. 나는 당신이 당신의 필요에 맞게 하나를 선택하는 것이 좋습니다.
답장을 보내 주셔서 감사합니다. 매우 유익한. 지금은 누군가가 ptree를 도울 수 있고 json을 향상시킬 수 있는지를 기다리는 것을 선호합니다. 나는 코드에서 너무 많이 바꾸지 않는 것을 선호한다. 보조 노트로 – Bob
은 'doc'끝에 '\ n'이 필요합니까? 왜 '자동'을 사용하고 있습니까? – Bob
@Bob JSON입니다. 물론 필요하지 않습니다. 그리고 나는 게으르다. 'JSON :: Object' – sehe