]> git.mxchange.org Git - flightgear.git/commitdiff
JSON Properties: encode NaN as null
authorTorsten Dreyer <torsten@ŧ3r.de>
Mon, 9 Mar 2015 15:17:20 +0000 (16:17 +0100)
committerTorsten Dreyer <torsten@ŧ3r.de>
Mon, 9 Mar 2015 15:17:20 +0000 (16:17 +0100)
JSON doesn't know about NaN, probably null matches best

src/Network/http/jsonprops.cxx

index dc3ad58e0ce1c4cb7ee9faadf4783d0011478cbb..e5c1a508526968496a9340b82a5bf254f7ea81fa 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "jsonprops.hxx"
 #include <simgear/misc/strutils.hxx>
+#include <simgear/math/SGMath.hxx>
 namespace flightgear {
 namespace http {
 
@@ -82,9 +83,11 @@ cJSON * JSON::toJson(SGPropertyNode_ptr n, int depth, double timestamp )
       case simgear::props::INT:
       case simgear::props::LONG:
       case simgear::props::FLOAT:
-      case simgear::props::DOUBLE:
-        cJSON_AddItemToObject(json, "value", cJSON_CreateNumber(n->getDoubleValue()));
+      case simgear::props::DOUBLE: {
+        double val = n->getDoubleValue();
+       cJSON_AddItemToObject(json, "value", SGMiscd::isNaN(val) ? cJSON_CreateNull() : cJSON_CreateNumber(val));
         break;
+      }
       default:
         cJSON_AddItemToObject(json, "value", cJSON_CreateString(n->getStringValue()));
         break;