Piotr Czajkowski 2 years ago
parent
commit
d02da35f15
2 changed files with 17 additions and 6 deletions
  1. 6 0
      AnalyzeJSON.cs
  2. 11 6
      AnalyzeStructure.cs

+ 6 - 0
AnalyzeJSON.cs

@@ -1,5 +1,6 @@
 using System;
 using System.IO;
+using System.Linq;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 
@@ -19,6 +20,11 @@ namespace analyzeJSON
             json = JsonConvert.DeserializeObject<JObject>(jsonString);
         }
 
+        public static string GetNameFromPath(string tokenPath)
+        {
+            return tokenPath.Split(".").Last();
+        }
+
         private void Traverse(IJEnumerable<JToken> tokens, Action<JToken> action)
         {
             foreach (var token in tokens)

+ 11 - 6
AnalyzeStructure.cs

@@ -14,6 +14,11 @@ namespace analyzeJSON
 
         public void AnalyzeToken(JToken token)
         {
+            if (token.Type == JTokenType.Object)
+                return;
+
+            var tokenName = AnalyzeJSON.GetNameFromPath(token.Path);
+
             if (token.HasValues)
             {
                 if (token.First.Equals(token.Last) &&
@@ -22,17 +27,17 @@ namespace analyzeJSON
                     return;
                 }
 
-                if (nodes.ContainsKey(token.Path))
-                    nodes[token.Path]++;
+                if (nodes.ContainsKey(tokenName))
+                    nodes[tokenName]++;
                 else
-                    nodes.Add(token.Path, 1);
+                    nodes.Add(tokenName, 1);
             }
             else
             {
-                if (leafs.ContainsKey(token.Path))
-                    leafs[token.Path]++;
+                if (leafs.ContainsKey(tokenName))
+                    leafs[tokenName]++;
                 else
-                    leafs.Add(token.Path, 1);
+                    leafs.Add(tokenName, 1);
             }
         }
     }