using Newtonsoft.Json.Linq;
public static void Main()
""Title"": ""Getting Oriented"",
""Title"": ""Artifacts"",
""Title"": ""Build Your Solution"",
""Title"": ""Core Platform Configuration"",
""Title"": ""Artifacts"",
var jo = JObject.Parse(json);
var topicIds = jo.Descendants()
.Where(p => p.Name == "TopicId" && p.Value != null)
foreach (var topicId in topicIds)
var moduleId = (string)topicId.Parent.Parent.Parent.Parent["ModuleId"];
Console.WriteLine("TopicId " + topicId.Value + " -- ModuleId " + moduleId);