]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_API_CPP/api/src/JsonFormatter.cpp
Salome HOME
API c++
[modules/gde.git] / projects / GDE_API_CPP / api / src / JsonFormatter.cpp
1 #include "JsonFormatter.hpp"
2
3 #include <Poco/JSON/Parser.h>
4
5 #include <sstream>
6
7 Poco::JSON::Object::Ptr
8 gde::JsonFormatter::parse(const std::string& json)
9 {
10   Poco::JSON::Parser parser;
11   Poco::Dynamic::Var result = parser.parse(json);
12   // use pointers to avoid copying
13   Poco::JSON::Object::Ptr object = result.extract<Poco::JSON::Object::Ptr>();
14   return object;
15 }
16
17 template <typename T>
18 T
19 gde::JsonFormatter::extract(Poco::JSON::Object::Ptr object, const std::string& varName)
20 {
21   Poco::Dynamic::Var v = object->get(varName);
22   return v.convert<T>();
23 }
24
25 std::string
26 gde::JsonFormatter::stringify(const Poco::JSON::Object& object) {
27   std::ostringstream jsonStream;
28   object.stringify(jsonStream);
29   return jsonStream.str();
30 }