mirror of
https://github.com/nlohmann/json.git
synced 2025-07-13 20:21:48 +03:00
check for is_number_unsigned before is_number_integer
This commit is contained in:
13
src/json.hpp
13
src/json.hpp
@ -493,10 +493,11 @@ template <typename Json, typename ArithmeticType,
|
|||||||
int> = 0>
|
int> = 0>
|
||||||
void get_arithmetic_value(Json const &j, ArithmeticType &val)
|
void get_arithmetic_value(Json const &j, ArithmeticType &val)
|
||||||
{
|
{
|
||||||
if (j.is_number_integer())
|
// unsigned must be checked first, since is_number_integer() == true for unsigned
|
||||||
val = *j.template get_ptr<const typename Json::number_integer_t*>();
|
if (j.is_number_unsigned())
|
||||||
else if (j.is_number_unsigned())
|
|
||||||
val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
|
val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
|
||||||
|
else if (j.is_number_integer())
|
||||||
|
val = *j.template get_ptr<const typename Json::number_integer_t*>();
|
||||||
else if (j.is_number_float())
|
else if (j.is_number_float())
|
||||||
val = *j.template get_ptr<const typename Json::number_float_t*>();
|
val = *j.template get_ptr<const typename Json::number_float_t*>();
|
||||||
else
|
else
|
||||||
@ -702,10 +703,10 @@ template <
|
|||||||
int> = 0>
|
int> = 0>
|
||||||
void from_json(Json const &j, ArithmeticType &val)
|
void from_json(Json const &j, ArithmeticType &val)
|
||||||
{
|
{
|
||||||
if (j.is_number_integer())
|
if (j.is_number_unsigned())
|
||||||
val = *j.template get_ptr<const typename Json::number_integer_t*>();
|
|
||||||
else if (j.is_number_unsigned())
|
|
||||||
val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
|
val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
|
||||||
|
else if (j.is_number_integer())
|
||||||
|
val = *j.template get_ptr<const typename Json::number_integer_t*>();
|
||||||
else if (j.is_number_float())
|
else if (j.is_number_float())
|
||||||
val = *j.template get_ptr<const typename Json::number_float_t*>();
|
val = *j.template get_ptr<const typename Json::number_float_t*>();
|
||||||
else if (j.is_boolean())
|
else if (j.is_boolean())
|
||||||
|
Reference in New Issue
Block a user