@@ -265,32 +265,35 @@ std::shared_ptr<std::istream> ModelBase::fromBase64( const utility::string_t& en
265265
266266int64_t ModelBase::int64_tFromJson(const web::json::value& val)
267267{
268- return val.as_number().to_int64();
268+ return val.is_null() ? std::numeric_limits < int64_t > ::quiet_NaN() : val. as_number().to_int64();
269269}
270+
270271int32_t ModelBase::int32_tFromJson(const web::json::value& val)
271272{
272- return val.as_integer();
273+ return val.is_null() ? std::numeric_limits < int32_t > ::quiet_NaN() : val. as_integer();
273274}
275+
274276float ModelBase::floatFromJson(const web::json::value& val)
275277{
276- return static_cast< float> (val.as_double());
278+ return val.is_null() ? std::numeric_limits < float > ::quiet_NaN() : static_cast< float> (val.as_double());
277279}
280+
278281utility::string_t ModelBase::stringFromJson(const web::json::value& val)
279282{
280283 return val.is_string() ? val.as_string() : utility::conversions::to_string_t(" " );
281284}
282285
283286utility::datetime ModelBase::dateFromJson(const web::json::value& val)
284287{
285- return utility::datetime::from_string(val.as_string(), utility::datetime::ISO_8601);
288+ return val.is_null() ? utility::datetime::from_string(L " NULL " , utility::datetime::ISO_8601) : utility::datetime::from_string(val.as_string(), utility::datetime::ISO_8601);
286289}
287290bool ModelBase::boolFromJson(const web::json::value& val)
288291{
289- return val.as_bool();
292+ return val.is_null() ? false : val. as_bool();
290293}
291294double ModelBase::doubleFromJson(const web::json::value& val)
292295{
293- return val.as_double();
296+ return val.is_null() ? std::numeric_limits < double > ::quiet_NaN(): val. as_double();
294297}
295298
296299int64_t ModelBase::int64_tFromHttpContent(std::shared_ptr<HttpContent > val)
0 commit comments