IVGCVSW-6517 Delegate Json output is invalid

Change-Id: Iee9720a9df6f2f0d8e00313e1972f3a3df33cb15
Signed-off-by: Keith Davis <keith.davis@arm.com>
diff --git a/src/armnn/JsonPrinter.cpp b/src/armnn/JsonPrinter.cpp
index 4be956b..f771cb1 100644
--- a/src/armnn/JsonPrinter.cpp
+++ b/src/armnn/JsonPrinter.cpp
@@ -48,9 +48,8 @@
         // Add details opening
         DecrementNumberOfTabs();
         PrintTabs();
-        m_OutputStream << std::quoted("Graph") << ":[{";
+        m_OutputStream << std::quoted("Graph") << ":[";
         PrintNewLine();
-        IncrementNumberOfTabs();
 
         // Fill details body
         for (std::string stringLine : object.m_LayerDetailsList)
@@ -61,9 +60,7 @@
         }
 
         // Close out details
-        DecrementNumberOfTabs();
         PrintTabs();
-
         object.IsDetailsOnlyEnabled() ? m_OutputStream << "]" : m_OutputStream << "],";
 
         PrintNewLine();
diff --git a/src/armnn/ProfilingDetails.hpp b/src/armnn/ProfilingDetails.hpp
index 1bed395..774565f 100644
--- a/src/armnn/ProfilingDetails.hpp
+++ b/src/armnn/ProfilingDetails.hpp
@@ -22,7 +22,7 @@
 {
 public:
     /// Constructor
-    ProfilingDetails() : JsonUtils(m_ProfilingDetails), m_DetailsExist(false)
+    ProfilingDetails() : JsonUtils(m_ProfilingDetails), m_DetailsExist(false), m_PrintSeparator(false)
     {}
 
     /// Destructor
@@ -43,9 +43,11 @@
             PrintNewLine();
         }
 
-        m_ProfilingDetails << std::quoted("Name") << ": " << std::quoted(workloadName) << " ";
         PrintHeader();
-
+        PrintTabs();
+        m_ProfilingDetails << std::quoted("Name") << ": " << std::quoted(workloadName);
+        PrintSeparator();
+        PrintNewLine();
         PrintTabs();
         m_ProfilingDetails << std::quoted("GUID") << ": " << std::quoted(std::to_string(guid));
         PrintSeparator();
@@ -76,17 +78,23 @@
         }
 
         ParameterStringifyFunction extractParams = [this](const std::string& name, const std::string& value) {
+            if (m_PrintSeparator)
+            {
+                PrintSeparator();
+                PrintNewLine();
+            }
             PrintTabs();
             m_ProfilingDetails << std::quoted(name) << " : " << std::quoted(value);
-            if (name != "DataLayout") PrintSeparator();
-            PrintNewLine();
+            m_PrintSeparator = true;
         };
 
         StringifyLayerParameters<DescriptorType>::Serialize(extractParams, desc);
 
+        PrintNewLine();
         PrintFooter();
 
         m_DetailsExist = true;
+        m_PrintSeparator = false;
     }
 
     /// Get the ProfilingDetails
@@ -158,6 +166,7 @@
     /// Stores ProfilingDetails
     std::ostringstream m_ProfilingDetails;
     bool m_DetailsExist;
+    bool m_PrintSeparator;
 
 };