diff --git a/Changelog b/Changelog index 810a3c1..7e1fe5f 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,6 @@ +2026-03-13: +- json could not handle double types. + 2026-02-15: - webserver exited if file was not found. Return error code and keep running - webserver did not set the document root as expected diff --git a/UDPTCPNetwork-json.h b/UDPTCPNetwork-json.h index 8fb845e..a4ae61a 100644 --- a/UDPTCPNetwork-json.h +++ b/UDPTCPNetwork-json.h @@ -52,6 +52,7 @@ public: int GetValue(std::string varname, std::string *dest); int GetValueInt(std::string varname, int *dest); int GetValueInt64(std::string varname, int64_t *dest); + int GetValueDouble(std::string varname, double *dest); int GetValueString(std::string varname, std::string *dest); int GetObject(std::string varname, JSONParse *dest); diff --git a/json.cc b/json.cc index f97af21..d74c293 100644 --- a/json.cc +++ b/json.cc @@ -230,6 +230,17 @@ int JSONParse::GetValueInt64(std::string varname, int64_t *dest) { }; +int JSONParse::GetValueDouble(std::string varname, double *dest) { + std::string s; + int res = GetValue(varname, &s); + if (res) { + *dest = atof (s.c_str()); + return 1; + } + return 0; +}; + + int JSONParse::GetValueString(std::string varname, std::string *dest) { std::string s; int res = GetValue(varname, &s);