} while(0)
#define EMPTY_JSON_OBJECT "{}"
+#define DEFAULT_PRECISION 3
namespace ctx {
bool set(const char* path, const char* key, json& val);
bool set(const char* path, const char* key, int val);
bool set(const char* path, const char* key, int64_t val);
+ bool set(const char* path, const char* key, double val, int prec = DEFAULT_PRECISION);
bool set(const char* path, const char* key, std::string val);
bool get(const char* path, const char* key, json* val);
bool get(const char* path, const char* key, int* val);
bool get(const char* path, const char* key, int64_t* val);
+ bool get(const char* path, const char* key, double* val);
bool get(const char* path, const char* key, std::string* val);
int array_get_size(const char* path, const char* key);
bool array_append(const char* path, const char* key, json& val);
bool array_append(const char* path, const char* key, int val);
bool array_append(const char* path, const char* key, int64_t val);
+ bool array_append(const char* path, const char* key, double val, int prec = DEFAULT_PRECISION);
bool array_append(const char* path, const char* key, std::string val);
bool array_set_at(const char* path, const char* key, int index, json& val);
bool array_set_at(const char* path, const char* key, int index, int val);
bool array_set_at(const char* path, const char* key, int index, int64_t val);
+ bool array_set_at(const char* path, const char* key, int index, double val, int prec = DEFAULT_PRECISION);
bool array_set_at(const char* path, const char* key, int index, std::string val);
bool get_array_elem(const char* path, const char* key, int index, json* val);
bool get_array_elem(const char* path, const char* key, int index, int* val);
bool get_array_elem(const char* path, const char* key, int index, int64_t* val);
+ bool get_array_elem(const char* path, const char* key, int index, double* val);
bool get_array_elem(const char* path, const char* key, int index, std::string* val);
};
return out;
}
-#if 0
static std::string double_to_string(double in, int prec)
{
// Locale-independent double-to-string conversion
ostr << std::setprecision(prec) << std::fixed << in;
return ostr.str();
}
-#endif
ctx::json::json()
{
return true;
}
-#if 0
bool ctx::json::set(const char* path, const char* key, double val, int prec)
{
IF_FAIL_RETURN_TAG(this->json_node, false, _E, "Json object not initialized");
json_object_set_string_member(jobj, key, double_to_string(val, prec).c_str());
return true;
}
-#endif
bool ctx::json::set(const char* path, const char* key, std::string val)
{
return true;
}
-#if 0
bool ctx::json::get(const char* path, const char* key, double* val)
{
IF_FAIL_RETURN_TAG(this->json_node, false, _E, "Json object not initialized");
return true;
}
-#endif
bool ctx::json::get(const char* path, const char* key, std::string* val)
{
return true;
}
-#if 0
bool ctx::json::array_append(const char* path, const char* key, double val, int prec)
{
IF_FAIL_RETURN_TAG(this->json_node, false, _E, "Json object not initialized");
json_array_add_string_element(arr, double_to_string(val, prec).c_str());
return true;
}
-#endif
bool ctx::json::array_append(const char* path, const char* key, std::string val)
{
return true;
}
-#if 0
bool ctx::json::array_set_at(const char* path, const char* key, int index, double val, int prec)
{
IF_FAIL_RETURN_TAG(this->json_node, false, _E, "Json object not initialized");
json_node_set_string(node, double_to_string(val, prec).c_str());
return true;
}
-#endif
bool ctx::json::array_set_at(const char* path, const char* key, int index, std::string val)
{
return true;
}
-#if 0
bool ctx::json::get_array_elem(const char* path, const char* key, int index, double* val)
{
IF_FAIL_RETURN_TAG(this->json_node, false, _E, "Json object not initialized");
return true;
}
-#endif
bool ctx::json::get_array_elem(const char* path, const char* key, int index, std::string* val)
{