diff --git a/json.cpp b/json.cpp index 9ae1cb9..ac41109 100644 --- a/json.cpp +++ b/json.cpp @@ -42,9 +42,15 @@ const char * UINT_FORMAT = "%u"; /*! \brief Format used for long integer to string conversion */ const char * LONG_FORMAT = "%li"; +/*! \brief Format used for long long integer to string conversion */ +const char * LONG_LONG_FORMAT = "%lli"; + /*! \brief Format used for unsigned long integer to string conversion */ const char * ULONG_FORMAT = "%lu"; +/*! \brief Format used for unsigned long integer to string conversion */ +const char * ULONG_LONG_FORMAT = "%llu"; + /*! \brief Format used for character to string conversion */ const char * CHAR_FORMAT = "%c"; @@ -735,7 +741,6 @@ std::string json::parsing::encode_string(const char *input) { case '"': case '\\': - case '/': result += "\\"; result += *input; break; @@ -830,7 +835,9 @@ std::vector json::parsing::parse_array(const char *input) json::jobject::entry::operator int() const { return this->get_number(INT_FORMAT); } json::jobject::entry::operator unsigned int() const { return this->get_number(UINT_FORMAT); } json::jobject::entry::operator long() const { return this->get_number(LONG_FORMAT); } +json::jobject::entry::operator long long() const { return this->get_number(LONG_LONG_FORMAT); } json::jobject::entry::operator unsigned long() const { return this->get_number(ULONG_FORMAT); } +json::jobject::entry::operator unsigned long long() const { return this->get_number(ULONG_LONG_FORMAT); } json::jobject::entry::operator char() const { return this->get_number(CHAR_FORMAT); } json::jobject::entry::operator float() const { return this->get_number(FLOAT_FORMAT); } json::jobject::entry::operator double() const { return this->get_number(DOUBLE_FORMAT); } diff --git a/json.h b/json.h index 60bc763..35541ec 100644 --- a/json.h +++ b/json.h @@ -667,12 +667,18 @@ namespace json /*! \brief Casts the value as an unsigned integer */ operator unsigned int() const; - /*! \brief Casts teh value as a long integer */ + /*! \brief Casts the value as a long integer */ operator long() const; + /*! \brief Casts the value as a long long integer */ + operator long long() const; + /*! \brief Casts the value as an unsigned long integer */ operator unsigned long() const; + /*! \brief Casts the value as an unsigned long long integer */ + operator unsigned long long() const; + /*! \brief Casts teh value as a char */ operator char() const; @@ -965,9 +971,15 @@ namespace json /*! \brief Assigns a long integer */ void operator=(const long input) { this->set_number(input, "%li"); } + /*! \brief Assigns a long long integer */ + void operator=(const long long input) { this->set_number(input, "%lli"); } + /*! \brief Assigns a long unsigned integer */ void operator=(const unsigned long input) { this->set_number(input, "%lu"); } + /*! \brief Assigns a unsigned long long integer */ + void operator=(const unsigned long long input) { this->set_number(input, "%llu"); } + /*! \brief Assigns an character */ void operator=(const char input) { this->set_number(input, "%c"); }