[mapguide-commits] r8832 - sandbox/jng/clean_json/Web/src/HttpHandler

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Nov 13 04:23:55 PST 2015


Author: jng
Date: 2015-11-13 04:23:55 -0800 (Fri, 13 Nov 2015)
New Revision: 8832

Modified:
   sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp
Log:
Array-ify elements that are known to have multiple elements, even if conversion only produced a single element.

Modified: sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp
===================================================================
--- sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp	2015-11-11 22:34:20 UTC (rev 8831)
+++ sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp	2015-11-13 12:23:55 UTC (rev 8832)
@@ -153,7 +153,28 @@
         if (nodeList->size() == 1)
         {
             childNode = (*nodeList)[0];
-            this->ProcessObjectNode(childNode, bClean);
+            if (bClean)
+            {
+                bool bMultiple = false;
+                IsMultiple(childNode, bMultiple);
+
+                //If this node is known to house more than one element, then we must write
+                //a JSON array, even if there's only one element to write
+                if (bMultiple)
+                {
+                    m_jsonDoc.BeginArray(1, nodeName);
+                    this->ProcessArrayNode(0, childNode, bClean);
+                    m_jsonDoc.EndArray();
+                }
+                else
+                {
+                    this->ProcessObjectNode(childNode, bClean);
+                }
+            }
+            else
+            {
+                this->ProcessObjectNode(childNode, bClean);
+            }
         }
         else
         {



More information about the mapguide-commits mailing list