【发布时间】:2022-11-19 02:34:35
【问题描述】:
是否可以将std::string 解析为Poco::JSON::Object?
我通过 Poco::Dynamic::Var 和 Parser 找到的只是std::string -> Poco::JSON::Object::Ptr。为什么我不能避免使用指针?
【问题讨论】:
是否可以将std::string 解析为Poco::JSON::Object?
我通过 Poco::Dynamic::Var 和 Parser 找到的只是std::string -> Poco::JSON::Object::Ptr。为什么我不能避免使用指针?
【问题讨论】:
只需取消引用指针:
std::string json_string = "{"test" : "A"}";
Poco::JSON::Parser parser;
auto result = parser.parse(json_string);
Poco::JSON::Object::Ptr ptr_object = result.extract<Poco::JSON::Object::Ptr>();
std::cout << ptr_object->get("test").toString() << std::endl;
// dereference the pointer
Poco::JSON::Object obj = *ptr_object;
std::cout << obj.getValue<std::string>("test") << std::endl;
或者更短:
std::string json_string = "{"test" : "A"}";
Poco::JSON::Parser parser;
auto result = parser.parse(json_string);
Poco::JSON::Object obj = *result.extract<Poco::JSON::Object::Ptr>();
【讨论】: