]> git.mxchange.org Git - flightgear.git/commitdiff
httpd/json: send as correct typ for bools and numbers
authorTorsten Dreyer <torsten@ŧ3r.de>
Wed, 11 Feb 2015 10:34:16 +0000 (11:34 +0100)
committerTorsten Dreyer <torsten@ŧ3r.de>
Wed, 11 Feb 2015 10:34:16 +0000 (11:34 +0100)
src/Network/http/jsonprops.cxx

index 1745609aaebb8e51c7359a77f3c6ac4a4915bd99..362b43977bd3e62f8d50815a8dea637cc336219c 100644 (file)
@@ -74,8 +74,22 @@ cJSON * JSON::toJson(SGPropertyNode_ptr n, int depth, double timestamp )
   cJSON * json = cJSON_CreateObject();
   cJSON_AddItemToObject(json, "path", cJSON_CreateString(n->getPath(true).c_str()));
   cJSON_AddItemToObject(json, "name", cJSON_CreateString(n->getName()));
-  if( n->hasValue() )
-    cJSON_AddItemToObject(json, "value", cJSON_CreateString(n->getStringValue()));
+  if( n->hasValue() ) {
+    switch( n->getType() ) {
+      case simgear::props::BOOL:
+        cJSON_AddItemToObject(json, "value", cJSON_CreateBool(n->getBoolValue()));
+        break;
+      case simgear::props::INT:
+      case simgear::props::LONG:
+      case simgear::props::FLOAT:
+      case simgear::props::DOUBLE:
+        cJSON_AddItemToObject(json, "value", cJSON_CreateNumber(n->getDoubleValue()));
+        break;
+      default:
+        cJSON_AddItemToObject(json, "value", cJSON_CreateString(n->getStringValue()));
+        break;
+    }
+  }
   cJSON_AddItemToObject(json, "type", cJSON_CreateString(getPropertyTypeString(n->getType())));
   cJSON_AddItemToObject(json, "index", cJSON_CreateNumber(n->getIndex()));
   if( timestamp >= 0.0 )