using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
string JsonString = "{\".\":{\"file\":{\"name\":\"fileInRoot.xml\"},\"proc\":{\"file\":{\"name\":\"fileInProc.xml\"},\"15\":{\"file\":{\"name\":\"fileIn15.xml\"},\"task\":{\"file\":{\"name\":\"fileInTask.xml\"},\"15\":{\"file\":{\"name\":\"fileInTask.xml\"},\"mounts\":{\"file\":{\"name\":\"fileInMounts.xml\"}},\"mountsInfo\":{\"file\":{\"name\":\"fileInMountsInfo.xml\"}},\"clear_refs\":{\"file\":{\"name\":\"fileInClear_Refs.xml\"}}}}},\"14\":{\"file\":{\"name\":\"fileIn14.xml\"},\"task\":{\"file\":{\"name\":\"fileInTask.xml\"},\"loginUid\":{\"file\":{\"name\":\"fileInloginUid.xml\"}},\"sessionid\":{\"file\":{\"name\":\"fileInsessionid.xml\"}},\"coreDump_filter\":{\"file\":{\"name\":\"fileIncoreDump_filter.xml\"}},\"io\":{\"file\":{\"name\":\"fileInIo.xml\"}}}}}}}";
JObject json = JObject.Parse(JsonString);
foreach (string path in CreateFileList(json))
private static List<string> CreateFileList(JObject j)
List<string> ret = new List<string>();
AddToFileList(j, ret, "");
private static void AddToFileList(JObject j, List<string> dest, string prefix)
var jnext = (JObject)kvp.Value;
dest.Add(prefix + (string)jnext["name"]);
AddToFileList(jnext, dest, prefix + kvp.Key);