1 #include "CommandTO.hpp"
2 #include "JsonFormatter.hpp"
4 gde::CommandTO::CommandTO(const CommandTO& cto)
5 : _method(cto._method), _data(cto._data), _parameters(cto._parameters)
10 gde::CommandTO::fromJson(const std::string& json)
12 Poco::JSON::Object::Ptr object = JsonFormatter::parse(json);
13 int method = JsonFormatter::extract<int>(object, "method");
14 std::string data = JsonFormatter::extract<std::string>(object, "data");
16 ParametersMap parameters;
17 //Poco::JSON::Object::Ptr objParameters = JsonFormatter::extract<Poco::JSON::Object::Ptr>(object, "parameters");
18 Poco::Dynamic::Var varParameters = object->get("parameters");
19 Poco::JSON::Object::Ptr objParameters = varParameters.extract<Poco::JSON::Object::Ptr>();
21 for (Poco::JSON::Object::ConstIterator itr = objParameters->begin(); itr != objParameters->end(); ++itr) {
22 std::string paramName = itr->first;
23 std::string paramValue = itr->second;
24 parameters[paramName] = paramValue;
27 return CommandTO(method, data, parameters);
31 gde::CommandTO::toJson() const
33 Poco::JSON::Object obj;
34 obj.set("method", Poco::Dynamic::Var(_method));
35 obj.set("data", Poco::Dynamic::Var(_data));
37 Poco::JSON::Object::Ptr objParameters = new Poco::JSON::Object(true);
38 typedef std::map<std::string, std::string>::const_iterator MapIterator;
39 for (MapIterator itr = _parameters.begin(); itr != _parameters.end(); ++itr) {
40 objParameters->set(itr->first, itr->second);
42 obj.set("parameters", objParameters);
44 return JsonFormatter::stringify(obj);