using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; namespace analyzeJSON { public class ExtractText { private readonly Dictionary keysToExtract; private readonly Dictionary> extracted = new(); public ExtractText(Dictionary keys) { keysToExtract = keys ?? throw new ArgumentNullException(nameof(keys)); } public void Extract(JToken token) { if (token.Type != JTokenType.String) return; var tokenName = AnalyzeJSON.GetNameFromPath(token.Path); if (string.IsNullOrWhiteSpace(tokenName)) return; if (!keysToExtract.ContainsKey(tokenName)) return; if (!extracted.ContainsKey(tokenName)) extracted.Add(tokenName, new List()); extracted[tokenName].Add(token.Value()); } public Dictionary> Result => extracted; } }